3

我有以下代码:

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(parser).pipe(request) 有效,但它返回 401 Authorization 错误。问题是我如何将 Authorization 标头传递给管道请求?

4

0 回答 0