簡體   English   中英

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/

生成了文件......他們都在那里。 我一步一步地運行它。 無論我使用哪種瀏覽器,我都會收到“無法連接”(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);
}

沒有骰子。 沒有改變。 運行“node app.js”時無法輸出,無法將其拉出。 我知道節點已經存在且安裝正確,因為我已經運行了一堆示例代碼並且稍微使用了它。

在OS X Yosemite上,但我的防火牆已關閉。

這是怎么回事? 令人驚訝的是,搜索此內容時發現的信息很少 - 這讓我對使用Node構建任何嚴重的內容猶豫不決。

您的問題是您所關注的教程非常陳舊。 Express發生器隨着時間的推移極大地改變了它的結構。 它現在使用npm來運行初始app命令,就像你應該的那樣。 package.json的scripts對象非常便於抽象命令。

只需cd進入您的示例應用程序並運行:

npm start

您將在終端中看到以下內容:

$ npm start

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

享受!

除了設置之外,該教程的其余部分仍然非常准確。 為了說實話,我會咨詢上面的文檔 只是我的意見。

最后 “我注意到它指向了我系統上Node的錯誤路徑,因此我將其更改為正確的路徑”。 你應該改回來,否則可能會失敗。

此外,如果想要保持服務器運行,那么使用nodemon

nodemon bin/www

o將給出相同的o / p:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM