【发布时间】:2017-09-13 09:41:35
【问题描述】:
下面是我的代码
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 设为未定义
如果我在app.post(..) 中使用中间件jsonParser,则此路由会挂起,并且我会在前端收到超时错误。代码如下。
app.use('/api', jsonParser, (req, res) => {
proxy.web(req, res);
});
我想记录res.statusCode !== 200时的响应和请求
【问题讨论】:
-
请修复您的代码中的一些问题,如果问题仍然存在,请告诉我们。首先删除导致语法错误的额外
}。还要删除重复的行const jsonParser = BodyParser.json();target选项需要知道它的协议所以尝试:http://127.0.0.1:7800即使这工作正常,你的代码在 req.body 不会存在的上下文中 -
@DanielAristizabal 谢谢,我已经修复了语法。
标签: javascript node.js express body-parser node-http-proxy