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