从我的Hapi路线回复Boom错误时......
{
method: 'PUT',
path:'foo',
handler: function (request, reply) {
reply(Boom.badRequest('something', { stuff: 'and more' }));
}
}
Run Code Online (Sandbox Code Playgroud)
...我收到以下回复:
{"statusCode":400,"error":"Bad Request","message":"something"}
它缺少提供错误细节的数据对象!这是怎么回事?
Ada*_*son 14
在Hapi文档中,它引用了output.payloadboom对象上的属性,默认设置为include statusCode,error和message.
我可以通过设置.details此对象来输出繁荣错误的详细信息:
{
method: 'PUT',
path:'foo',
handler: function (request, reply) {
var err = Boom.badRequest('something', { stuff: 'and more' });
err.output.payload.details = err.data;
reply(err);
}
}
Run Code Online (Sandbox Code Playgroud)
这不是世界上最理想的东西,但可能是一个安全的默认值.
我有同样的问题,虽然我不能采用你采取的方法,但Boom 常见问题解答中有以下内容:
问题我如何在回复中包含额外信息?output.payload 缺少数据,怎么办?
回答响应有效负载中传回的值被完全锁定是有原因的。这主要是为了安全,不会将任何重要信息泄露给客户端。这意味着您需要付出更多努力来包含有关自定义错误的额外信息。查看hapi 文档中的“错误转换”部分。
还:
我发现(奇怪的是),正如文档所指出的(但不是示例用法),将消息传递给badImplementation忽略,而将消息传递给notImplemented- 两者都是 5xx 错误。
文档:badImplementation与notImplemented
| 归档时间: |
|
| 查看次数: |
4247 次 |
| 最近记录: |