X服务器达到了对Y服务器的后置要求。 x个服务器主体数据{“ number”:0.0},但是在y服务器(nodejs)中接收时,它在req.body标签中更改为{“ number”:0}。通过bodyParser.json()的每个要求
为什么会改变?它应该得到x服务器发布正确的信息?帮帮我。
与bodyParser.raw()一起尝试,bodyParser.text()不会提供body标签。
答案 0 :(得分:0)
如果您需要通过原始请求主体计算HMAC,则不应该对其进行解析,或者至少首先获取原始请求主体,然后计算HMAC,然后然后< / em>对其进行解析。
要执行后者,您可以使用express.json
的verify
选项:
app.use(express.json({
verify(req, res, buf, encoding) {
req._hmac = hmac(buf);
}
}));
这将使用称为hmac
的函数来计算请求正文上的HMAC(作为buf
参数中的Buffer传递)。然后它将继续将请求正文解析为JSON。
注意事项:
但这两个问题都相对容易解决。
答案 1 :(得分:0)
由于我遇到了同样的问题,因此我以这种方式解决了使用bodyparser的问题:
app.use(bodyParser.text({
type: 'application/json'
}))
通过这种方式,带有application / json标头的请求被视为文本,在req.body中,您将具有json的字符串表示形式。