14.接口项目:配置统一错误处理中间件

201 阅读1分钟

配置统一错误处理中间件

我们可以直接在app.js中写统一错误处理的中间件,但是这样显得结构不清晰,👌,一般我们会在middleware文件夹中新建一个error-handler.js的文件,来统一处理异常。代码结构如下:

image.png

error-handler.js中的代码,如下:

// nodejs的工具模块
const util = require('util')

module.exports = () => {
    return (err, req, res, next) => {
        res.status(500).json({
            error: util.format(err)
        })
    }
}

app.js中的代码,如下:

const express = require('express');
const morgan = require('morgan')
const cors = require('cors')
const router = require('./router/index')
const errHandler = require('./middleware/error-handler')

const app = express()
const PORT = process.env.PORT || 3000

app.use(morgan('dev')) //打印日志
app.use(express.json()) //json格式的相应数据
app.use(cors()) //处理跨域问题

app.use('/api', router)

// 错误处理中间件
app.use(errHandler())

app.listen(PORT, () => {
    console.log(`Server is running at http://localhost:${PORT}`)
})