Basic Node.js Beispiele funktioniert nicht auf Windows 7
Habe ich installiert node.js von http://nodejs.org/#download, v0.6.6. Ich bin mit Windows 7 32-bit.
Ich habe schon durch verschiedene tuts online, und wollen zu Experimentieren, während dies zu tun, aber ich kann nicht scheinen zu bekommen node.js arbeiten. Knoten laufen meine .js-Datei, aber jede Anfrage vom browser mal aus.
Hier ist eine typische Hallo-Welt-Beispiel, das nicht funktioniert:
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(1337);
Zeigen meine browser auf 127.0.0.1:1337 oder localhost:1337 funktioniert nicht. Die Anfrage vom browser mal aus. Ich habe auch versucht, listen(1337,'0.0.0.0') und listen(1337,'127.0.0.1').
Ich weiß, der server läuft; wenn ich STRG+C und stop-Knoten, der browser kommt sofort zurück mit ERR_CONNECTION_RESET.
Ich auch ausprobiert, läuft der code in diesem gist, die nicht funktionieren: https://gist.github.com/1339846. Ich am Ende mit der Ausgabe der Konsole "Hören!" und dann nichts anderes.
Des weiteren habe ich versucht, verschiedene ports, und meine firewall ist aus über
netsh firewall set opmode mode=disable
Ich habe versucht, die firewall komplett deaktiviert und der Dienst beendet. Wenn ich die Option verbindungen mit netstat-noa, ich kann sehen, dass Knoten hat eine Reihe von verbindungen geöffnet für die Browser, die alle im Zustand CLOSE_WAIT. So wie es aussieht verbindungen passiert sind, aber node.js funktioniert einfach nicht.
Die callback-Funktion, soll eingeleitet werden durch eine Anforderung wird nie ausgeführt - ich streute einige Konsole.log-Anweisungen in verschiedenen Bereichen, und Sie alle führen, mit Ausnahme der in den Rückruf.
Ich deinstalliert, neu installiert, habe versucht, ein paar ältere builds, meine Maschine neu gestartet...nichts.
Jede Hilfe ist willkommen!
UPDATE: ich habe gerade über aufgegeben. Ich habe versucht, alles, was ich denken kann, und es endete als einfacher ausführen node.js in einer Instanz von Ubuntu in VirtualBox als greifen nach Strohhalmen.
- Ändern Sie den port 8000 oder 8080 und versuchen Sie es erneut. Lassen Sie mich wissen, wie das geht.
- Ich habe versucht, diese und andere ports.
- Es hat etwas mit einer firewall, die ich installiert habe Knoten auf W7 auf einem PC und Windows XP auf 2 anderen PCs und es funktionierte überall.
- das ist, was ich denken würde. Ich habe sogar versucht mit firewall ganz deaktiviert, und der Dienst beendet. Wenn ich die Option verbindungen mit netstat-noa, ich kann sehen, dass Knoten hat eine Reihe von verbindungen geöffnet für die Browser, die alle im Zustand CLOSE_WAIT. So wie es aussieht verbindungen passiert sind, aber node.js funktioniert einfach nicht. Vielleicht werde ich versuchen eine neue zu installieren.
- Deinstallieren und neu installieren, vielleicht gab es ein problem bei der Installation das erste mal..
- Gah...versucht, eine neue Installation, und versuchte, zurück auf eine revision. Noch kein nodejs Liebe.
- Hast du versucht als admin ausgeführt für die cmd-Fenster-hosting-Knoten und dem browser? Überprüfen Sie auch, dass Ihre hosts-Datei ist nicht die Verschraubung, die port. Letzte Sache ist, versuchen zu schreiben eine einfache app, verbindet sich mit der ip und port (webrequest) und sehen, ob es funktioniert. Sorry du hast so viel Mühe.
Du musst angemeldet sein, um einen Kommentar abzugeben.
!!!!!! Dasselbe problem ist mir passiert....
Hier ist eine Lösung die ich noch nirgends zu finden:
Blick in
Windows Firewall with Advanced Security
und sehen, obEvented I/O for V8 JavaScript
blockiert ist oder erscheint zwei mal.Wenn ja, entsperren Sie es und löschen Sie den doppelten Eintrag. Wenn Sie installieren/deinstallieren/installieren nodeJs gibt es 2 Einträge.
Auch wenn Knoten wird zuerst das Fenster Firewall-dialog öffnet sich Fragen, ob Sie zulassen möchten, dass Knoten die firewall den Zugriff. Wenn Sie "Nein" drücken oder einfach das Fenster schließen, ohne zu Fragen, wird es schaffen
Evented I/O for V8 JavaScript
UND ES WIRD GESPERRT.node app.js
zum ersten mal, das pop-up erschien, aber es kommt nicht wieder.Ich lief in das gleiche problem und nach dem Lesen durch die Dokumentation, die ich unerwartet lief in das, was ich glaube, ist die Lösung. In meinem Beispiel habe ich bemerkt, dass die eingehenden Anfragen WURDEN geliefert wird, zu Knoten, aber die Antwort war, dass er nie sein 'Ende' - Ereignis ausgelöst. So verändern eingehende firewall-Regeln in windows nicht zu sein scheinen in Bezug auf das problem.
Damit, http.createServer nimmt ein einzelnes argument - eine Funktion, die ein request-und response-parameter. Die request-parameter zu sein schien, wo das problem lag. Request-parameter ist eine Instanz von http.incomingMessage. Diese Klasse hatte nur eine Veranstaltung geben, aber es wurde sich auch eine Implementierung des Stream.Lesbar, das ist, wo ich fand das 'Ende' Ereignis nicht ausgelöst. Wirklich aus keinem anderen Grund, dass die nur testen welches war das erste Ereignis nicht ausgelöst, habe ich nur noch einen listener für eine andere Art von event ("lesbare"), und nur noch eine Konsole.log line, es machte die ganze Arbeit.
Also der code sieht einfach so etwas wie dieses:
Der obige code funktioniert, in der Erwägung, dass die frühere version unten ohne "lesbare" Ereignis-listener nicht immer reagieren:
Ich bin nicht sicher, warum dies funktioniert, außer für einen kleinen Hinweis in der Dokumentation, die lautet:
Ich habe es gerade ausprobiert und es funktioniert für mich. Stellen Sie sicher, dass Sie nicht blockieren Knoten mit Ihrer firewall.
Welche edition von Windows 7 verwenden Sie? ZB. Home Premium, Professional, Ultimate?
Einen thread auf, der npm github-Projekt erwähnt, die ähnliche Symptome während der Installation von nodejs-Module mit npm, und die Kommentare scheinen es genauer zu sein, verursacht durch Windows 7 Professional. Es wird 32/64-bit scheint keine Rolle zu spielen.
Bin ich mit beiden das problem, das Sie beschreiben, als auch die npm-installation problem, und bin auf Windows 7 Professional 64-bit.
Mit XPMode (ein workaround erwähnt, die in der npm-thread) hat mir erlaubt, zur Umgehung dieser Probleme. Obwohl, ich vermute, das ist nur eine weitere Windows-y-version der Nutzung von Ubuntu in VirtualBox.
Andere workarounds ausprobiert, ohne Erfolg:
Programme"
Diese Feste alle Probleme für mich
Ich hatte das gleiche problem mit diesem code (Http-Server Beispiel aus diesem link: http://net.tutsplus.com/tutorials/javascript-ajax/node-js-for-beginners/)
Habe ich versucht windows 7 64-bit-version, windows XP virtuellen Maschine, ubuntu virtuellen Maschine ... nichts! Es funktionierte nur, nachdem ich sagte "anfordern.auf" line". Dein Beispiel (das nicht über dieser Zeile) funktionierte gut für mich. Ich verwende die neuste stable build aus node.js (v0.10.18 für windows oder linux). Hoffe, dies hilft jemand Probleme mit diesem.