如何修改(或只读)请求stream之前,它是pipe道?

我有以下代码:

app.post('/someurl',function(req,res,next){ var request = require('request').post('/otherurl'); var response = ''; request.on('data',function(chunk){ response += chunk; }); var pipe = req.pipe(parser).pipe(request); request.on('end',function(){ var res2 = pipe.response; var obj = JSON.parse(response); res.json(obj); }); }); 

所以它只是pipe理POST请求到其他url。 我需要的是知道pipe道请求的身体。 所以我添加了这个(这个代码不应该做什么):

  var Transform = require('stream').Transform; var parser = new Transform(); parser._transform = function(data, encoding, done) { this.push(data); done(); }; 

并将req.pipe(request)更改为req.pipe(parser).pipe(request) 。 问题是,这是行不通的 – 请求没有pipe道请求,但只对parsing器…


问题是与授权 – 实际上req.pipe(parsing器).pipe(请求)工作,但它返回401授权错误。 问题是我可以如何将授权标头传递给pipe道请求?