我无法获得需要与请求正文一起存储在日志中的响应正文。我唯一能够获得响应正文的时间是请求失败时。
我已经关注了博客文章,该文章解决了我在使用 body-parser 插件时获取请求正文的问题 - https://www.express-gateway.io/exploit-request-stream/。
const { PassThrough } = require("stream");
const jsonParser = require("express").json();
const urlEncodedParser = require("express").urlencoded({ extended: true });
module.exports = {
name: 'body-parser',
policy: actionParams => {
return (req, res, next) => {
req.egContext.requestStream = new PassThrough()
req.pipe(req.egContext.requestStream)
return jsonParser(req, res, () => urlEncodedParser(req, res, next))
}
}
};
当请求确实有效时:
{ res: { statusCode: 400 },
req:
{ body: { a: 'b' },
headers:
{ ... } },
responseTime: 310 }
当它不起作用时:
{ res: { body: 'Bad gateway.', statusCode: 502 },
req:
{ body: { a: 'b' },
headers:
{ ... } },
responseTime: 1019 }