javascript - 代理请求超过时间提供错误

标签 javascript node.js express node-http-proxy node-request

我想代理对新端口的调用,因此我将创建服务器的所有逻辑封装到像

这样的函数中
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)

我应该如何避免这种情况

最佳答案

proxyRequest 函数中删除代理服务器创建逻辑

试试这个:

httpProxy = require('http-proxy');
var proxy = httpProxy.createProxyServer({});
http.createServer(function (req, res) {
    console.log("App proxy new port is: " + 5000)
    res.end("Request received on " + 5000);
}).listen(5000);

function proxyRequest(req, res) {
  var hostname = req.headers.host.split(":")[0];
  proxy.web(req, res, {
    target: 'http://' + hostname + ':' + 5000
  });    
}

关于javascript - 代理请求超过时间提供错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31265253/

相关文章:

rest - 对于单页应用程序 : ExpressJS or Restify or both?

javascript - 如何使用 mongoose 中的用户对象 id 数组返回文档数组?

javascript - google docs 可嵌入预览器是否已经过测试版,它是否具有 API?

javascript - 我怎样才能使滚动锁定?

javascript - 如何使用MONK设置TTL使文档过期?

javascript - 使用内联 javascript 渲染 javascript 文件

javascript - newChat.style.setAttribute ("width"、 "100px"); 有什么问题吗?在内容脚本中?

javascript - 数组.map : get the index of each element to use in the return function

javascript - 是否可以重新排序 node.js 事件循环?

javascript - 使用 Node.js 和 Express 进行简单的 API 调用