自定义 Boom 错误消息

Atl*_*ila 5 javascript node.js hapi.js

在我的 Hapi.js 服务器上,如果帐户没有访问 api 端点的权限,我想发送特定消息。我现在收到的 Boom 消息如下所示:

return reply(Boom.unauthorized("unauthorized access to this API."));
Run Code Online (Sandbox Code Playgroud)

这将返回一条如下所示的消息:

{
  "statusCode": 401,
  "error": "Unauthorized",
  "message": "unauthorized access to this API."
}
Run Code Online (Sandbox Code Playgroud)

我想让它看起来更像这样:

{
  "success": false,
  "message": "unauthorized access to this API.",
  "csrf-decorator": "",
  "redirect": ""
}
Run Code Online (Sandbox Code Playgroud)

我们是否有权自定义 Boom 错误消息?

谢谢!

Atl*_*ila 5

Boom 带有内置的响应错误转换。因此,为了实现我的结果,我以以下方式重新格式化了我的错误回复:

const error = Boom.forbidden("Sorry, you are restricted in accesssing this API. No soup for you!.");
error.output.statusCode = 403;    // Assign a custom error code
error.output.payload["csrf-decorator"] = request.headers["csrf-decorator"];
error.reformat();
return reply(error);
Run Code Online (Sandbox Code Playgroud)