这是关于boom的信息,它是Hapijs的插件
这是要引发错误的功能
->Request started
->http-loading-indicator.service.ts:24 GET "http://localhost:8080/api/film"
in 2164 ms.
这就是我在另一个文件中使用它的方式
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,
});
}
,而我希望Boom产生500 Internal Server Error
。日志指示控制台上的错误,这显然意味着未捕获到该错误。
我要去哪里错了?
答案 0 :(得分:0)
哦,这很快。
因此,没有像error.statusCode
这样的内置属性,而是我在error.httpStatusCode
函数中设置的errorThrower
。
这就是为什么boom
假设500,因为我没有提供有效的statusCode
(error.statusCode
未定义)的原因。
要引用boom
statusCode-HTTP状态代码。如果尚未设置状态代码并且err不是Boom对象,则默认为500。
这是正确的错误响应的唯一必要更改:
return boom.boomify(error,
{
statusCode: error.statusCode,
});
也可以创建一个Boom对象...