Я хотел прокси вызов к новому порту, так что я инкапсулировать всю логику создания сервера в функцию какProxy запросить больше, чем на время обеспечить ошибку
var appRouter = express.Router();
app.use(appRouter);
appRouter.route('*')
.get(function (req, res) {
proxyRequest(req, res)
}
в функции запроса прокси я поставил следующий код
function proxyRequest(req, res) {
httpProxy = require('http-proxy');
var proxy = httpProxy.createProxyServer({});
var hostname = req.headers.host.split(":")[0];
proxy.web(req, res, {
target: 'http://' + hostname + ':' + 5000
});
http.createServer(function (req, res) {
console.log("App proxy new port is: " + 5000)
res.end("Request received on " + 5000);
}).listen(5000);
}
проблема заключается в том, что когда я первый звонок я увидел, что прокси-сервер работает нормально и слушать в новом порт сервера 5000, когда я попал в браузер во второй раз я получил ошибку
Error: listen EADDRINUSE
at exports._errnoException (util.js:746:11)
at Server._listen2 (net.js:1146:14)
Как мне избежать этой логики создания прокси-сервера
Я не эксперт узла, но это звучит, как вы запускаете сервер дважды. –
@ EvanKnowles-Правильно, но как я должен избегать этого элегантным способом, так как мне нужно сделать это всего один раз, и когда у меня есть дополнительный вызов на этот порт, я хочу просто перенаправить вызов на новый серверный порт ... –
выглядит вы пытаетесь создать прокси-сервер по каждому запросу. См. Пример [здесь] (http://stackoverflow.com/a/31257399/1807881) – hassansin