为什么在'proxyRes'中未定义req.body

时间:2017-09-13 09:41:36

标签: javascript node.js express body-parser node-http-proxy

以下是我的代码

import { createProxyServer } from 'http-proxy';
import BodyParser from 'body-parser';

const jsonParser = BodyParser.json();
const proxy = createProxyServer({
  target: 'http://127.0.0.1:7800',
  proxyTimeout: 1000,
});

app.use('/api', (req, res) => {
  proxy.web(req, res);
});

proxy.on('proxyRes', (proxyRes, req, res) => {

  proxyRes.on('data', (dataBuffer) => {
    console.log('req.body ', req.body);
    const data = dataBuffer.toString('utf8');
    console.log(data);
  });

});

我得到req.body as undefined

如果我在jsonParser中使用中间件app.post(..),则此路由会挂起,并且前端会出现超时错误。代码如下。

app.use('/api', jsonParser, (req, res) => {
  proxy.web(req, res);
});

我想制作回复日志&请求res.statusCode !== 200

1 个答案:

答案 0 :(得分:0)

在清理一些代码后(删除}额外的,删除重复的行)我能够获得一些可运行的代码,不确定这是否是您正在寻找的。我希望这有帮助。

const proxy = createProxyServer({
  target: 'http://127.0.0.1:7800',
  proxyTimeout: 1000,
});

app.use(BodyParser())

app.use('/api', (req, res) => {
  proxy.on('proxyRes', (proxyRes) => {
    proxyRes.on('data', (dataBuffer) => {
      console.log('req.body ', req.body);
      const data = dataBuffer.toString('utf8');
      console.log(data);
    });
  });
  proxy.web(req, res);
});