Изменить ответ после перенаправления (node.js & express) - PullRequest
0 голосов
/ 23 января 2020

У меня есть приложение Nodejs express, которое получает запросы POST (XML) и просто перенаправляет их на другой хост, отвечающий исходному абоненту (также с сообщением XML).

var app = require('express')();

app.post('/', function(req, res) {
  res.redirect(307, 'http://localhost:8888/');
});

app.listen(3000, function() {
  console.log('Application listening on http://localhost:3000/');
});

Чего я пытаюсь добиться, так это изменить ответ от второго хоста (localhost: 8888). Как мне перехватить и отредактировать ответ от второго хоста, прежде чем он достигнет первоначального абонента?

Я не могу понять это из документации, поэтому любая помощь будет очень признательна, спасибо.

1 Ответ

4 голосов
/ 23 января 2020

Вы не можете сделать это, поскольку ответ от сервера 2 выбирается клиентом, обрабатывающим перенаправление (например, вашим браузером). Вы должны сами получить ответ на стороне сервера, изменить его и отправить обратно.

var app = require('express')();
var request = // your preferred http library

app.post('/', function(req, res) {
  request.get('http://localhost:8888/', function (err, response) {
    if (err) {
      return res.error(err);
    }

    // Here you have the response, you can modify it.

    res.send(response.body);
  });
});

app.listen(3000, function() {
  console.log('Application listening on http://localhost:3000/');
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...