2011-08-08 4 views
0

J'essaie de commencer avec Node, et j'ai atteint une bosse. Quand j'essaie pour exécuter le ci-dessous (même exemple que j'ai vu partout) la ligne "starting ..." s'exécute, ainsi que "created.", Mais il semble que le script reste bloqué sur la ligne suivante, et n'imprime jamais "commencé". (et le serveur ne fonctionne pas, essayé via un navigateur , telnet, curl, etc). Des conseils sur la façon de déboguer?listen() ne retourne pas?

var http = require("http"); 

function onRequest(request, response) { 
    console.log("Request received."); 
    response.writeHead(200, {"Content-Type": "text/plain"}); 
    response.write("Hello World"); 
    response.end(); 
} 

console.log("starting..."); 
var s = http.createServer(onRequest); 
console.log("created."); 
s.listen(8888); 
console.log("started."); 

Debian GNU/Linux 6.0.1 (Squeeze), 06/02/39-x86_64

compilé Node.js 19/07/2011 v0.4.10 (stable) à partir de la source.

Merci!

+0

testé avec le noeud 0.4.8 et cela fonctionne -> J'ai vu le message 'commencé' et je peux accéder au serveur avec l'adresse 127.0.0.1:8888 – cristian

+0

merci. bizarre, je peux essayer de passer à 0.4.8 (0.4.10 est marqué comme stable, et cela semble être autre chose est fondamentalement faux) – gregmeish

Répondre

0

En fait, il semble que l'écoute ait quelques problèmes avec l'accès au socket. Essayez de modifier le numéro de port, désactivez le pare-feu ou exécutez le nœud avec un accès root. Peut-être que ça devrait aider. D'une autre manière, essayez-le avec python ou smth comme ça;

+0

D'autres serveurs n'ont pas de problème de liaison à 8888. J'ai essayé de changer le numéro de port, fonctionnant en root, toujours rien ... La chose étrange est il n'y a pas d'erreurs imprimées (que je peux voir). J'ai essayé l'option --debug, mais je ne pense pas que cela fasse ce que je veux. – gregmeish

+0

Pourriez-vous essayer si les sockets TCP/Unix fonctionnent mal? [Socket API] (http://nodejs.org/docs/v0.4.10/api/net.html#net.Socket) –

0

Modifiez le numéro de port à 3000 ET exécutez en tant que root. Assurez-vous que le port 3000 n'est PAS utilisé (c'est-à-dire utilisez netstat). Vous devriez voir le message "commencé". Sinon, je ne peux pas vraiment aider. Je cours le noeud 0.4.10 sur Ubuntu et j'ai copié/collé votre code; ça fonctionne parfaitement. Si cela ne fonctionne toujours pas, réinstallez Node.