Express + Mongoose 数据库查询时, 如何全局统一错误处理, 不用显示地单独对每次查询都做错误处理?
我用Express+Mongoose构建一个API Server, 在Express里我加了一个捕获错误中间件:
app.use(function (err, req, res, next) {
res.status(404).json({message: err.message})
})
但是在使用Mongoose的时候, 每次Query结束, 我都要手动处理error, 不管Query的回调是callback(需要手动判断有没有error), 还是Promise(需要写错误处理函数), 或者是yield(需要加上try catch), 每次我都要手动把Error
传到next()
.
有没有什么办法可以全局处理Error? 凡事Mongoose查询有Error就自动传到Express的错误处理中间件统一做处理? But with Mongoose, i should pass each Error manually to next() each time when i do a query.