【发布时间】:2022-01-09 08:44:39
【问题描述】:
我们以这个 sn-p 为例
const express = require('express')
const bodyParser = require('body-parser')
const app = express()
app.use(bodyParser.urlencoded({ extended: false }))
app.get(...)
# all my routes #
app.use(function (err, req, res, next) {
console.error(err.stack)
res.status(500).send('Something broke!')
})
app.listen(9000)
....
如果 body-parser 抛出错误?
可能是客户端关闭了连接或者请求负载过大
客户端将收到来自默认快速错误处理程序的状态码为 500 的错误,但它可能是应返回 4xx 响应的错误。
我想在它之后放置一个中间件并调用 res.send 并返回错误和状态码 400。
也许用 try-catch 处理程序包装我所有的 3rd 方中间件
或者在我的错误处理程序中间件中添加一个巨大的开关盒 随着时间的推移,添加中间件第三方中间件抛出的错误并将状态码更改为 400
所有解决方案都不是真正的螺栓证明,需要随着时间的推移进行维护
对我们的最佳实践有什么建议?
【问题讨论】:
标签: node.js express error-handling server middleware