X服务器达到了对Y服务器的后置要求。 x服务器主体数据{“ number”:0.0},但是在y服务器(nodejs)中接收到它时,在req.body标签中将其更改为{“ number”:0}。通过bodyParser.json()的每个要求
为什么会改变?它应该得到x服务器发布正确的信息?帮帮我。
尝试使用bodyParser.raw(),bodyParser.text()dosnt提供body标签。
最佳答案
如果您需要通过原始请求主体计算HMAC,则不应该对其进行解析,或者至少首先获取原始请求主体,计算HMAC,然后对其进行解析。
为此,可以使用express.json
的verify
选项:
app.use(express.json({
verify(req, res, buf, encoding) {
req._hmac = hmac(buf);
}
}));
这将使用称为
hmac
的函数来计算请求正文上的HMAC(作为buf
参数中的Buffer传递)。然后它将继续将请求正文解析为JSON。注意事项:
它将为通过请求正文的每个请求计算HMAC;
如果计算HMAC是异步的,则将不起作用。
不过,这两个问题都相对容易解决。