【发布时间】:2017-11-17 22:29:46
【问题描述】:
我正在尝试通过管道传输请求以供远程服务器处理,具体如下:
var destination = request(url);
req.pipe(destination).pipe(res);
这适用于GET 请求。但是对于POST 的请求,我正在苦苦挣扎。我认为需要注意的重要一点是,对于POST 请求,我在POST 路由处理程序之前使用了正文解析器,以便从POST 请求中提取正文……这只是一个基本文本正文解析器,因为正文包含纯文本:
var postRouteHandler = someFunction;
var bodyParser = require('body-parser');
var textParser = bodyParser.text({
limit: '50kb'
});
app.use('/postRoute', [textParser, postRouteHandler]);
从this issue 和this issue 在我看来,在管道传输之前对POST 请求进行任何处理都会导致问题。事实上,当我删除解析器时,管道似乎工作正常。
问题是我需要先检查主体,进行一些初始处理,然后确定是否将请求通过管道传送到远程服务器。所以我需要在管道之前解析主体。
有没有办法解决这个问题?
【问题讨论】:
标签: javascript node.js express node-request