I'm attempting to pipe a request for handling by a remote server, along the following lines:
var destination = request(url);
req.pipe(destination).pipe(res);
This works just fine for GET
requests. But for POST
requests I'm struggling. An important point to note, I think, is that for POST
requests I'm using a body parser before my POST
route handler in order to extract the body from the POST
request... it's just a basic text body parser because the body contains plain text:
var postRouteHandler = someFunction;
var bodyParser = require('body-parser');
var textParser = bodyParser.text({
limit: '50kb'
});
app.use('/postRoute', [textParser, postRouteHandler]);
From this issue and this issue it seems to me that doing any processing on the POST
request before you pipe it will cause a problem. Indeed, when I remove the parser, the piping seems to work OK.
The problem is that I need to examine the body first, to do some initial processing and then to determine whether or not to pipe the request on to the remote server at all. So I need to parse the body before piping.
Is there any way around this problem?