如何在管道传输之前修改(或只读取)请求流?

时间:2013-09-11 12:22:44

标签: node.js express

我有以下代码:

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标头传递给管道请求?

0 个答案:

没有答案