javascript - 自定义 Boom 错误消息

标签 javascript node.js hapi.js

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

return reply(Boom.unauthorized("unauthorized access to this API."));

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

{
  "statusCode": 401,
  "error": "Unauthorized",
  "message": "unauthorized access to this API."
}

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

{
  "success": false,
  "message": "unauthorized access to this API.",
  "csrf-decorator": "",
  "redirect": ""
}

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

谢谢!

最佳答案

Boom 带有内置响应 error transformation .因此,为了实现我的结果,我按照以下方式重新格式化了我的错误回复:

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);

关于javascript - 自定义 Boom 错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45178815/

相关文章:

javascript - 需要帮助了解 OAuth2 工作流程和选择授权类型

javascript - react 颜色变化一段时间后不起作用

node.js - Gulp:无依赖的同步性

mysql - 无法将 Azure 应用服务中的 NodeJS 应用连接到 Azure MySQL 数据库

node.js - 使用 hapijs 制作基本路由过滤器

javascript - 如何使 Hapi 插件仅适用于特定域或子域?

javascript - 如何在 React 组件中调用 mapStateToProps 获取 Redux store

javascript - React 中的箭头函数

node.js - Mongo $ min和$ max,或并行排序

node.js - Hapi.js 和 Socket.io——socket.io.js 在哪里?