我已经读过,在Javascript中承诺你的错误信息会被吞噬if you do not explicitly catch them,但在这里我还没有't have any promises but it'仍在发生 . 有谁知道为什么会发生这种情况以及如何解决这个问题?
app.post(`/register-user`, (req, res) => {
corsHandler(req, res, async () => {
try {
throw new Error("Oh look, a dissapearing error")
}
catch (error) {
res.status(500).send({
success: false,
message: "Error creating new user",
error: error
});
}
})
});
响应
{
"success": false,
"message": "Error creating new user",
"error": {}
}
Update
感谢@ mrdeadsven,我看到Error确实存在,只是不知道为什么它不会发送回来 .
我已尝试将错误字符串化,但仍未在响应中通过
error: querystring.stringify(error),
UPDATE 2 : Got it working, but dont know why.
我刚刚将错误添加到变量中,并在响应消息中添加了该变量,现在它可以正常工作 . 我不知道为什么 .
const _error: string = error
const responseObj: ReqResponse = {
success: false,
message: "Error 4",
error: _error,
responseCode: ResponseCodeEnum.internalServerError.code
}
1 回答
你错过了新的运营商:
throw new 错误("Oh look..");