如何在 Express.js 中访问 post 请求的原始正文?

Yah*_*hya 2 express postman body-parser

我用邮递员发送了这个请求。

邮差

console.log(req.body)返回一个这样的数组:

{ '{"urls":["https://example.com?paramOne': 'foo',
  paramTwo: 'bar"]}' }
Run Code Online (Sandbox Code Playgroud)

如何将整个身体作为这样的简单字符串?

{"urls":["https://example.com?paramOne=foo&paramTwo=bar"]}
Run Code Online (Sandbox Code Playgroud)

Yah*_*hya 5

In app.js: Replace:

app.use(express.json());
Run Code Online (Sandbox Code Playgroud)

With:

var rawBodySaver = function (req, res, buf, encoding) {
  if (buf && buf.length) {
    req.rawBody = buf.toString(encoding || 'utf8');
  }
}

app.use(bodyParser.json({ verify: rawBodySaver }));
app.use(bodyParser.urlencoded({ verify: rawBodySaver, extended: true }));
app.use(bodyParser.raw({ verify: rawBodySaver, type: '*/*' }));
Run Code Online (Sandbox Code Playgroud)