Javascript 使用节点代理时出错

Javascript 使用节点代理时出错,javascript,node.js,express,node-http-proxy,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) 这是一个程序我有一个非常简单的节点应用程序,只

我正在使用下面的程序,当我运行它时,我得到了下面的错误,我能够运行应用程序,但当我在浏览器中输入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);
我想在用户单击某个URL时启动新的代理服务器

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

另一件事…当我使用这个代码时,我得到了错误

process.on('uncaughtException', function (err) {
    console.log(err);
});
这就是现在的错误,知道吗

{ [Error: connect ECONNREFUSED]
  code: 'ECONNREFUSED',
  errno: 'ECONNREFUSED',
  syscall: 'connect' }
{ [Error: socket hang up] code: 'ECONNRESET' }
您的HTTP服务器正在侦听端口9056。代理尝试连接到错误端口的HTTP服务器,并在无法建立连接时抛出错误。若要避免将来出现类似错误,请将端口放入变量中:

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

非常感谢!投了赞成票!最后一个问题:)假设我想测试这是否真的起作用?你建议做什么?也许是一些单元测试或其他你能想到的东西…单元测试这样一个简短的服务器脚本是一件痛苦的事,因为没有纯粹的、无副作用的功能。如果脚本不是一个正在进行的开发,我会说给每个服务器一个不同的响应,并使用web浏览器进行测试。如果您可能会让这个过程变得更复杂一点,那么自动化这个过程可能是值得的。你可以使用一个合适的框架,比如Proactor,但是需要学习曲线和设置过程。如果你想做一个简单的测试来完成它的工作,你可以用不同的主机名头发出http请求并检查响应。你可以提供一些步骤来简单地测试它吗?我对这个主题很陌生,我想以某种方式验证这是否有效…,非常感谢!例如:为每个we broxy hostsname交换机案例制作3台服务器,就像上一行中的一样。制作一个单独的脚本,向代理发出3个请求:一个以“localhost”作为主机名头,一个为127.0.0.1,一个为其他内容。然后只需检查一下,例如对于“localhost”,您就可以返回在端口9001上运行的内容。可以在http请求的选项字段中设置标题。我把它标记为答案,你能提供你的重播作为答案吗?你说的制作一个单独的3脚本是什么意思,你能提供例子吗,非常感谢你的支持!
var PORT = 9001;
http.createServer(function(req, res) {
    res.end("Request received on " + PORT);
}).listen(PORT);