我有以下代码:
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);
});
});
所以它只是将POST请求传递给其他URL。我需要的是知道管道请求的主体。所以我添加了这个(这段代码什么都不做):
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)
。问题是这不起作用 - req不是通过管道传递给req,而是仅用于解析器......
问题在于授权 - 实际上req.pipe(解析器).pipe(请求)工作但它返回401授权错误。问题是如何将Authorization标头传递给管道请求?