我正试图按照以下方式将请求传输到远程服务器进行处理:
根据这个问题和这个问题,在将POST请求进行任何处理之前进行处理会导致问题。实际上,当我删除解析器时,管道似乎可以正常工作。
问题在于我需要先检查主体,进行一些初始处理,然后确定是否根本需要将请求管道传输到远程服务器。因此,我需要在管道之前解析主体。
有没有解决这个问题的方法?
我正在尝试通过管道将请求传输到远程服务器进行处理,具体如下:
var destination = request(url);
req.pipe(destination).pipe(res);
这对于GET
请求非常有效。但是对于POST
请求,我遇到了困难。我认为需要注意的一个重要点是,在POST
请求之前,我使用了一个body parser来从POST
请求中提取body...它只是一个基本的文本body parser,因为body包含纯文本:
var postRouteHandler = someFunction;
var bodyParser = require('body-parser');
var textParser = bodyParser.text({
limit: '50kb'
});
app.use('/postRoute', [textParser, postRouteHandler]);
根据这个问题和这个问题,在将POST请求进行任何处理之前进行处理会导致问题。实际上,当我删除解析器时,管道似乎可以正常工作。
问题在于我需要先检查主体,进行一些初始处理,然后确定是否根本需要将请求管道传输到远程服务器。因此,我需要在管道之前解析主体。
有没有解决这个问题的方法?
request.post(url)
而不仅仅是request(url)
吗? - drmrbrewerrequest
将使用req.method/stream.method
来确定要执行的请求类型,因此您不必明确指定它。 - robertklep