Express + Mongoose 数据库查询时, 如何全局统一错误处理, 不用显示地单独对每次查询都做错误处理?
发布于 8 小时前 作者 Kaijun 81 次浏览 来自 问答

我用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.

1 回复

异步就是需要每次回调处理错误, 可以用Promise统一处理错误的, 有错误,直接throw new Error(err_msg)

回到顶部