微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

node.js – express req.pipe()不起作用

>我想快速收听传入的POST请求.
>我想把这个请求传递给另外一个服务器
>我想收到响应里面的快递处理程序(我不想管道响应来表达res流)

现在我有以下代码

app.post('server1',function(req,res,next){
    var request = require('request');
    req.pipe(request.post('server2')).pipe(res);

}

所以这不工作 – 请求甚至没有管道到server2 – 我检查了它,没有传入的请求.

解决了点1& 2这样:

var bodyParser = express.bodyParser();

app.use(function(req,next){

    if(req.path == '/server1' && req.method == 'POST') {
        return next();
    }
    else {
        bodyParser(req,next);
    }
});

不是很好,但它的工作 – 它只是禁用bodyparser单个路由(POST / server1).

但我仍然不知道如何从管道请求获取json响应体 – 我有以下代码

app.post('/server1',next){

    var request = require('request');
    var pipe = req.pipe(request.post('/server2'));

    pipe.on('end',function(){

        var res2 = pipe.response;
        console.log(res2);

    });
});

res2对象具有正确的statusCode和头等等,但它不包含body – 我如何从res2对象获得这个? / server2在json中返回一些数据,但我不知道如何从响应中读取它…

解决方法

它不起作用,因为bodyParser使用解析器拦截所有的物体

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐