Express Gateway:未获得响应正文

时间:2019-01-15 12:25:13

标签: express-gateway

我无法获取需要与请求正文一起存储在日志中的响应正文。我唯一可以获得响应正文的时间是请求失败时。

我关注的博客帖子解决了我在使用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 }

1 个答案:

答案 0 :(得分:0)

仅此代码不足以获取响应正文。这将简单地挂接到请求主体处理中,并以解析的方式将其提供给EG。如果您也想挂接响应,则需要在响应对象中编写一个挂接。

您可以找到示例代码here

希望对您有帮助!

V。