node.js - bodyparser 将浮点数(0.0)更改为整数(0)?解决方案是什么?
问题描述
X 服务器将 post req 发送到 Y 服务器。x 服务器正文数据 {"number":0.0},但是当在 y 服务器 (nodejs) 中接收它时,它在 req.body 标记中更改为 {"number":0}。每个请求通过 bodyParser.json()
为什么它正在改变?它应该得到 x 服务器发布的内容吗?帮帮我。
尝试使用 bodyParser.raw(),bodyParser.text() 不提供 body 标签。
解决方案
如果您需要在原始请求正文上计算 HMAC,则不应该解析它,或者至少首先获取原始请求正文,计算 HMAC,然后解析它。
要执行后者,您可以使用express.json
'sverify
选项:
app.use(express.json({
verify(req, res, buf, encoding) {
req._hmac = hmac(buf);
}
}));
这将使用一个调用函数hmac
来计算请求正文上的 HMAC(作为buf
参数中的 Buffer 传递)。然后它将继续将请求正文解析为 JSON。
注意事项:
- 它将为每个通过请求正文的请求计算 HMAC;
- 如果计算 HMAC 是异步的,它将不起作用。
不过,这两个问题都相对容易解决。
推荐阅读
- postgresql - 如何检索 PostgreSQL 数据库和表静态数据并加载到 Power BI 仪表板?
- grep - 在 R 中使用 grep 进行数据清理
- c# - 如何在 Xamarin.Forms 页面中使用 Spotlight Xamarin.Android 库
- sql - 尽管编码设置与 DBI 相同,但 RODBC 未读取 unicode
- python - 按索引熊猫删除列
- python - MagicMock 对象的计算结果为 False
- karate - 使用空手道对 JSON 进行模式验证
- c++ - C++ struct 静态成员变量可以隐藏非类型模板参数吗?
- postgresql - 如果 postgres .sh 文件中不存在,则创建 db
- css - 使用 font-size 和 ch 单位来设置每行的字符数