节点.js + 快速 - 无法连接.ERR_CONNECTION_REFUSED

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

本文关键字:ERR 连接 CONNECTION REFUSED js 快速 节点      更新时间:2023-09-26

我遵循了这个基本示例:

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

文件已生成...他们都在那里。我一步一步地运行了这一切。无论我使用哪种浏览器,我都会收到"无法连接"(Firefox)和"此网页不可用...ERR_CONNECTION_REFUSED"(铬) - 它只是不起作用。我检查了生成的 bin/www 文件,它似乎指示端口 3000。但是,当我在生成站点后运行"节点应用程序.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);
}

没有骰子。什么都没有改变。运行"节点应用.js"时没有输出,无法拉起它。我知道节点在那里并且正确安装,因为我已经运行了一堆示例代码并玩了一下。

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

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

您的问题是您遵循的教程非常旧。随着时间的推移,快速生成器的结构发生了巨大变化。它现在利用npm来运行初始应用命令,这是你应该做的。package.json 中的脚本对象对于抽象命令非常方便。

只需cd到示例应用中并运行:

npm start

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

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

并享受!

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

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

另外,如果想保持服务器运行,请使用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`