我试图管,用于由远程服务器处理,大意如下的请求POST请求:节点快递/要求:管道与身体解析
var destination = request(url);
req.pipe(destination).pipe(res);
这只是正常的GET
请求。但是对于POST
请求我很挣扎。我认为需要注意的一点是,对于POST
请求,我在我的POST
路由处理程序之前使用了一个body解析器,以便从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
要求做任何处理,你管的时候,才导致出现问题。事实上,当我删除解析器时,管道似乎工作正常。
问题是我需要首先检查身体,进行一些初始处理,然后确定是否将请求传送到远程服务器。所以我需要来解析管道之前的身体。
有没有办法解决这个问题?
向大师学习!天才!这不仅是一个很好的解决方案,也是对问题发生原因的一个清晰而简洁的解释。你确实是大师@robertklep! – drmrbrewer
...只是一件事......它应该是'request.post(url)'而不是'request(url)'? – drmrbrewer
我非常肯定'request'将使用'req.method/stream.method'来确定执行的请求类型,因此您不必明确说明它。 – robertklep