node.js - 我可以将 statusCode 更改为 Boom 错误代码吗?
问题描述
我正在做一个 API,在 Boom 错误有效负载上,我得到的响应是:
{
"statusCode": 405,
"error": "Method Not Allowed",
"message": "Method Not Allowed"
}
但在我正在使用的另一个 API 上,该statusCode
字段应重命名为code
,因此响应如下所示:
{
"code": 405,
"error": "Method Not Allowed",
"message": "Method Not Allowed"
}
我想知道是否可以这样做,Boom
或者是否有其他方法可以做到这一点。
解决方案
我没有找到在繁荣库中重命名的statusCode
方法code
。
实现您想要的一种方法是编写一个小型服务器扩展来获取繁荣对象并返回自定义错误有效负载。不利的一面是,您将松开 Boom Object 本身。
server.ext('onPreResponse', (request, h) => {
const response = request.response;
if (!response.isBoom) {
return h.continue;
}
const renameProp = (cProp, nProp, { [cProp]: cValue, ...rest }) => ({
[nProp]: cValue,
...rest,
});
return h
.response(renameProp('statusCode', 'code', response.output.payload))
.code(response.output.statusCode);
});
推荐阅读
- azure - PHP 版本不是通过 ARM 模板设置的
- c# - C# 从 XML 获取特定元素
- delphi - Delphi 10.3 (Rio) 社区版,打开项目不打开任何源文件
- vb.net - 将后续号码添加到已添加的现有号码
- python - 如何将多个数组提供给 keras 机器学习算法?
- hadoop - 是否可以升级为 HDP 集群提供元数据存储的数据库?
- google-apps-script - 在 Google 表格中创建分组
- angular - ng serve --open 在 vs 代码上创建问题
- app-update - 违规的 Android 应用程序拒绝问题
- java - 无法在 Android 中关闭对话框