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

Tsa*_*mba 6 javascript node.js express

我按照这个基本的例子:

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

生成了文件......他们都在那里.我一步一步地运行它.无论我使用哪种浏览器,我都会收到"无法连接"(Firefox)和"此网页不可用... ERR_CONNECTION_REFUSED"(Chrome) - 它只是无法正常工作.我检查了生成的bin/www文件,它似乎表示端口3000.但是,当我在生成网站后运行"node app.js"时,我没有输出.在查看该文件后,我注意到它指向我系统上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);
}
Run Code Online (Sandbox Code Playgroud)

没有骰子.没有改变.运行"node app.js"时无法输出,无法将其拉出.我知道节点已经存在且安装正确,因为我已经运行了一堆示例代码并且稍微使用了它.

在OS X Yosemite上,但我的防火墙已关闭.

这是怎么回事?令人惊讶的是,搜索此内容时发现的信息很少 - 这让我对使用Node构建任何严重的内容犹豫不决.

Set*_*eth 8

您的问题是您所关注的教程非常陈旧.Express发生器随着时间的推移极大地改变了它的结构.它现在npm用于运行初始app命令,就像你应该的那样.脚本对象package.json对于抽象命令非常方便.

只需cd进入您的示例应用程序并运行:

npm start

在此输入图像描述

享受!

除了设置之外,该教程的其余部分仍然非常准确.为了说实话,我会咨询上面的文档.只是我的意见.

最后 "我注意到它指向了我系统上Node的错误路径,因此我将其更改为正确的路径".你应该改回来,否则可能会失败.