2015-01-11 4 views
5

folgte ich dieses einfache Beispiel:Node.js + Express - Verbindung nicht möglich. ERR_CONNECTION_REFUSED

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

Dateien erzeugt wurden ... sie sind alle da. Ich habe alles Schritt für Schritt ausgeführt. Egal, welchen Browser ich verwende, bekomme ich "Kann nicht verbinden" (Firefox) und "Diese Webseite ist nicht verfügbar ... ERR_CONNECTION_REFUSED" (Chrome) - es funktioniert einfach nicht. Ich überprüfte die generierte bin/www-Datei und es scheint Port 3000 anzuzeigen. Allerdings habe ich keine Ausgabe, wenn ich "Knoten app.js" nach dem Generieren der Website ausgeführt. Nach dem in dieser Datei sucht, bemerkte ich es auf den falschen Weg für Knoten auf meinem System zugespitzt, so habe ich es auf den richtigen:

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

keine Würfel. Nichts hat sich geändert. Keine Ausgabe beim Ausführen von "node app.js" und kann nicht hochgezogen werden. Ich weiß, Knoten ist da und korrekt installiert, da ich bereits eine Reihe von Beispielcode ausgeführt habe und damit ein wenig gespielt habe.

Auf OS X Yosemite aber meine Firewall ist ausgeschaltet.

Was ist los? Überraschenderweise wenig Informationen gefunden, wenn Suche nach diesem auch - lässt mich zögern, etwas ernstes mit Node aufzubauen.

+1

ich nicht zögern würde. 90% des Computerfehlers sind Benutzerfehler. Knoten ist nicht das Problem. Wenn Sie 'node app.js' ausführen, erhalten Sie überhaupt keine Ausgabe? Bitte aktualisieren Sie die Frage auch mit der Ausgabe, die Sie erhalten, wenn Sie 'which node' ausführen. – Seth

+2

Auf welche URL greifen Sie zu? und geben Sie bitte den Code, der den Server erstellt, hilfreich – surajck

+1

Wird der Prozess ausgeführt? Führen Sie es über die Befehlszeile aus, damit Sie sehen können, dass es noch ausgeführt wird. –

Antwort

9

Ihr Problem ist, dass das Tutorial, dem Sie folgen, sehr alt ist. Express-Generator hat seine Struktur im Laufe der Zeit immens verändert. Es verwendet jetzt npm, um die ersten App-Befehle auszuführen, wie Sie sollten. Das Skriptobjekt in package.json ist äußerst praktisch zum Abstrahieren von Befehlen.

einfach cd in Ihrem Beispiel App und laufen:

npm start

enter image description here

und genießen!

Der Rest dieses Tutorials abgesehen von der Einrichtung ist immer noch ziemlich genau. Ich würde die docs über alles um ehrlich zu sein konsultieren. Nur meine Meinung.

Schließlich „Ich bemerkte, dass es für Knoten auf meinem System auf den falschen Weg wies, so habe ich es auf den richtigen“. Sie sollten das ändern oder es könnte fehlschlagen.

+1

Das hat es geschafft, danke! –

+0

hat nicht für mich gearbeitet –

0

Auch wenn man den Server am Laufen halten will, dann verwenden nodemon

nodemon bin/www 

Welche gleichen die o/p geben:

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