- 我想以express 的形式监听传入的POST 请求。
- 我想将此请求传送到另一台服务器
- 我想在快速处理程序中接收响应(我不想将响应通过管道传输到快速资源流)
现在我有以下代码:
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,res,next){
if(req.path == '/server1' && req.method == 'POST') {
return next();
}
else {
bodyParser(req,res,next);
}
});
不太好,但它有效 - 它只是禁用单个路由(POST /server1)的bodyparser。
但我仍然不知道如何从管道请求获取 json 响应正文 - 我有以下代码:
app.post('/server1',function(req,res,next){
var request = require('request');
var pipe = req.pipe(request.post('/server2'));
pipe.on('end',function(){
var res2 = pipe.response;
console.log(res2);
});
});
res2
对象具有正确的状态代码和标题等,但它不包含正文 - 我如何从res2
目的?/server2
返回一些 json 数据,但我不知道如何从响应中读取它......