Node.js + Express – 无法连接。 ERR_CONNECTION_REFUSED

我遵循这个基本的例子:

http://shapeshed.com/creating-a-basic-site-with-node-and-express/

文件生成…他们都在那里。 我一步一步地运行它。 无论使用哪个浏览器,我都会收到“无法连接”(Firefox)和“此网页不可用… ERR_CONNECTION_REFUSED”(Chrome) – 这不起作用。 我检查了生成的bin / www文件,它似乎指示端口3000.但是,当我运行“node app.js”生成站点后,我没有输出。 看着那个文件,我注意到它指向了我的系统上Node的错误path,所以我将它改为正确的:

#!/usr/local/bin/ node /** * Module dependencies. */ var app = require('../app'); var debug = require('debug')('rwc:server'); var http = require('http'); /** * Get port from environment and store in Express. */ var port = parseInt(process.env.PORT, 10) || 3000; app.set('port', port); /** * Create HTTP server. */ var server = http.createServer(app); /** * Listen on provided port, on all network interfaces. */ server.listen(port); server.on('error', onError); server.on('listening', onListening); /** * Event listener for HTTP server "error" event. */ function onError(error) { if (error.syscall !== 'listen') { throw error; } // handle specific listen errors with friendly messages switch (error.code) { case 'EACCES': console.error('Port ' + port + ' requires elevated privileges'); process.exit(1); break; case 'EADDRINUSE': console.error('Port ' + port + ' is already in use'); process.exit(1); break; default: throw error; } } /** * Event listener for HTTP server "listening" event. */ function onListening() { debug('Listening on port ' + server.address().port); } 

没有骰子。 没有改变。 运行“node app.js”时无法输出,无法将其拉出。 我知道节点在那里,并已正确安装,因为我已经运行了一堆示例代码,并玩了一下。

在OS X优胜美地,但我的防火墙closures。

这是怎么回事? 令人惊讶的是,在search时也找不到什么信息 – 让我犹豫是否用Node来构build任何严肃的内容。

你的问题是,你所遵循的教程是非常古老的。 随着时间的推移,Express发生器极大地改变了它的结构。 它现在使用npm运行最初的应用程序命令,你应该。 package.json的脚本对象对于抽象命令非常方便。

简单地cd到你的示例应用程序并运行:

npm start

在这里输入图像描述

享受!

除了设置它之外,其余的教程仍然相当准确。 我会参考上面的文档说实话。 只是我的意见。

最后 “我注意到它指向了我的系统上Node的错误path,所以我将它改成了正确的path”。 你应该改变它,否则可能会失败。

另外,如果要保持服务器运行,则使用no​​demon

 nodemon bin/www 

这将给出相同的O / P:

 [nodemon] 1.11.0 [nodemon] to restart at any time, enter `rs` [nodemon] watching: *.* [nodemon] starting `node ./bin/www bin/wwww`