gpt4 book ai didi

javascript - 创建在 Express 请求中返回的错误消息的正确方法是什么?

转载 作者:数据小太阳 更新时间:2023-10-29 05:16:00 24 4
gpt4 key购买 nike

我有一个名为 a 的函数,它接受回调,如果有回调,调用时会出现错误。

a 在 Express 路由请求中被调用。如果有错误,错误应该是请求的响应。

function a(cb) {
cb(new Error('Some error message'))
}

app.get('/', function (req, res) {
a(function (error) {
if (error) {
res.json(error, 400)
}
res.send('No error')
})
})

我查看了 Express 的代码,res.json 似乎会将我的错误 字符串化。然而,这样做的结果是一个空字符串:

> var e = new Error('Some error message')
undefined
> JSON.stringify(e)
'{}'
> e.message
'Some error message'

有一些方法可以让我的路由在此处返回错误消息,例如在我的路由中转换错误对象 toString。但是,我想知道在 Node API 中格式化错误消息的最佳做法是什么,以及这是否会改变这里的情况。我应该以不同的方式格式化我的错误消息,还是应该只处理路由中的 Error 对象,例如:

res.json({ error: error.message }, 400)

最佳答案

要添加到@steveukx 的答案中,您可以通过使用参数为四的函数在express 中指定一个错误处理程序。

app.use(function(err, req, res, next){
res.json(500, {
error: err.message
});
});

每当您执行 next(err) 时都会调用它。参见 the docs .

关于javascript - 创建在 Express 请求中返回的错误消息的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16146461/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com