新しいポートへの呼び出しをプロキシしたかったので、サーバー作成のすべてのロジックを次のような関数にカプセル化しました
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);
}
問題は、最初の呼び出しを行ったときに、プロキシが正常に動作していることを確認し、2 回目にブラウザをヒットしたときに新しいサーバー ポート 5000 でリッスンしていることです。エラーが発生しました。
Error: listen EADDRINUSE
at exports._errnoException (util.js:746:11)
at Server._listen2 (net.js:1146:14)
どうすればこれを回避できますか