- Я хочу слушать входящий запрос POST в экспресс.
- Я хочу передать этот запрос другому серверу
- Я хочу получить ответ внутри экспресс-обработчика (я не хочу отвечать на ответ на поток выражений res)
Теперь у меня есть следующий код:
app.post('server1',function(req,res,next){
var request = require('request');
req.pipe(request.post('server2')).pipe(res);
}
Так что это не сработает - запрос даже не передан на сервер2 - я проверил его и нет входящего запроса.
Я решил точки 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);
}
});
Не очень приятно, но он работает - он просто отключает bodyparser для одного маршрута (POST/server1).
Но я до сих пор не знаю, как получить тело ответа 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
объект имеет правильный statusCode и заголовки и так далее, но он не содержит тело - как я могу получить это из объекта res2
? /server2
возвращает некоторые данные в json, но я не знаю, как читать его из ответа...