bodyparser将浮点数(0.0)更改为整数(0)?解决方案是什么?

时间:2019-01-02 13:59:31

标签: node.js express body-parser

X服务器达到了对Y服务器的后置要求。 x个服务器主体数据{“ number”:0.0},但是在y服务器(nodejs)中接收时,它在req.body标签中更改为{“ number”:0}。通过bodyParser.json()的每个要求

为什么会改变?它应该得到x服务器发布正确的信息?帮帮我。

与bodyParser.raw()一起尝试,bodyParser.text()不会提供body标签。

2 个答案:

答案 0 :(得分:0)

如果您需要通过原始请求主体计算HMAC,则不应该对其进行解析,或者至少首先获取原始请求主体,然后计算HMAC,然后然后< / em>对其进行解析。

要执行后者,您可以使用express.jsonverify选项:

app.use(express.json({
  verify(req, res, buf, encoding) {
    req._hmac = hmac(buf);
  }
}));

这将使用称为hmac的函数来计算请求正文上的HMAC(作为buf参数中的Buffer传递)。然后它将继续将请求正文解析为JSON。

注意事项:

  • 它将为通过请求正文的每个请求计算HMAC;
  • 如果计算HMAC是异步的,则将不起作用。

但这两个问题都相对容易解决。

答案 1 :(得分:0)

由于我遇到了同样的问题,因此我以这种方式解决了使用bodyparser的问题:

app.use(bodyParser.text({
   type: 'application/json'
}))

通过这种方式,带有application / json标头的请求被视为文本,在req.body中,您将具有json的字符串表示形式。