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

Node.js + Express - Can't connect. ERR_CONNECTION_REFUSED

我遵循了这个基本示例:

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

文件已生成...它们都在那里。我运行这一切都是一步一步来的。无论我使用哪种浏览器,我都会得到 "Unable to connect" (Firefox) 和 "This webpage is not available ... ERR_CONNECTION_REFUSED" (Chrome) - 它就是不工作。我检查了生成的 bin/www 文件,它似乎指示端口 3000。但是,在生成站点后 运行 "node app.js" 时,我得到了 no 输出.查看该文件后,我注意到它指向了我系统上错误的 Node 路径,因此我将其更改为正确的路径:

#!/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);
}

没有骰子。没有改变。 运行ning "node app.js"时无输出,拉不上去。我知道节点在那里并且安装正确,因为我已经 运行 一堆示例代码并稍微玩了一下。

开启 OS X Yosemite 但我的防火墙已关闭。

这是怎么回事?令人惊讶的是,在搜索时也发现了很少的信息——这让我犹豫要不要用 Node 构建任何严肃的东西。

你的问题是你正在学习的教程太旧了。随着时间的推移,Express 生成器已经极大地改变了它的结构。它现在使用 npm 到 运行 初始应用程序命令,如您所愿。 package.json 中的脚本对象对于抽象命令非常方便。

只需 cd 到您的示例应用程序和 运行:

npm start

您将在终端中看到以下内容:

$ npm start

> example@0.0.0 start /Users/your-user/example
> node ./bin/www

尽情享受吧!

除了设置之外,该教程的其余部分仍然非常准确。老实说,我会参考上面的 docs。不过只是我的意见。

最后 "I noticed it pointed to the wrong path for Node on my system, so I changed it to the correct one"。你应该把它改回去,否则它可能会失败。

此外,如果想保留服务器 运行 ,则使用 nodemon

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`