gpt4 book ai didi

javascript - 动臂-引发错误并以错误作为响应的差异

转载 作者:行者123 更新时间:2023-12-03 07:57:48 30 4
gpt4 key购买 nike

这是关于boom的,它是Hapijs的插件

这是要引发错误的功能

const errorThrower = (msg = 'Internal Server Error', errorCode = 500) => {
const error = new Error(msg);
error.httpStatusCode = errorCode;
throw error;
};

这就是我在另一个文件中使用它的方式
try {
...
errorThrower('Invalid client id for partner', 404);
...
} catch (error) {
return boom.boomify(error,
{
statusCode: error.statusCode,
});
}

现在,这将导致生成 500 Internal Server Error,而我希望Boom提供 404 Invalid client id for partner。日志指示控制台上的错误,这显然意味着未捕获到该错误。

我要去哪里错了?

最佳答案

哦,很快。

因此,没有像error.statusCode这样的内置属性,而是我在error.httpStatusCode函数内部设置的errorThrower

这就是为什么boom假设为500的原因,因为我没有提供有效的statusCode(error.statusCode未定义)。

要引用boom

statusCode - the HTTP status code. Defaults to 500 if no status code is already set and err is not a Boom object.



这是正确的错误响应所需的唯一更改:
return boom.boomify(error,
{
statusCode: error.statusCode,
});

也可以创建一个Boom对象...

关于javascript - 动臂-引发错误并以错误作为响应的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51787243/

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