使用节点代理时出错

时间:2015-06-20 08:02:29

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

我使用以下程序,当我运行它时,我得到以下错误我能够运行应用程序,但当我放入浏览器localhost:3000时,我在控制台中出现此错误...

**Error: connect ECONNREFUSED**
    at exports._errnoException (util.js:746:11)
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1000:19)

这是我非常简单的节点应用程序,只有一个文件包含以下代码(这是我的服务器/ app / .js

var http = require('http'),
    httpProxy = require('http-proxy'),
    url = require('url');

proxy = httpProxy.createProxyServer({});

http.createServer(function (req, res) {



    switch (hostname) {
        case 'localhost':
            proxy.web(req, res, {target: 'http://localhost:9001'});
            break;

    }
}).listen(3005, function () {
    console.log('original proxy listening on port: ' + 3005);
});


http.createServer(function(req, res) {
    res.end("Request received on 9001");
}).listen(9056);

我想在用户点击某个网址时启动新的代理服务器

我使用这个模块,我做错了什么?

https://github.com/nodejitsu/node-http-proxy

另一件事......当我使用这段代码时,我收到了错误......

process.on('uncaughtException', function (err) {
    console.log(err);
});

现在这是错误,任何想法?

{ [Error: connect ECONNREFUSED]
  code: 'ECONNREFUSED',
  errno: 'ECONNREFUSED',
  syscall: 'connect' }
{ [Error: socket hang up] code: 'ECONNRESET' }

1 个答案:

答案 0 :(得分:3)

http.createServer(function(req, res) {
    res.end("Request received on 9001");
}).listen(9056);

您的HTTP服务器正在侦听端口9056.代理尝试连接到错误端口上的HTTP服务器,并在无法建立连接时抛出错误。为了避免将来出现这样的错误,请将port放在变量中:

var PORT = 9001;
http.createServer(function(req, res) {
    res.end("Request received on " + PORT);
}).listen(PORT);