Socket.io-Fehler
Ich bin versucht zu laufen, Nodejs mit der Steckdose.io-Modul. Ich installierte die neueste version von Nodejs, und ich installierte Steckdose.io von einer Eingabeaufforderung als administrator geöffnet haben (ich bin in windows 7) den Befehl npm install socket.io
Die Installation scheint ohne Probleme abgeschlossen, aber wenn ich versuche, führen Sie das folgende test-Programm:
var io = require('socket.io').listen(80);
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
Erhalte ich diese Fehlermeldung:
module.js:340
throw err;
Error: Cannot find module 'socket.io'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:362:17)
at require (module.js:378:17)
at Object.<anonymous> (C:\xampp\htdocks\HTML5Game\impact\app.js:1:72)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function .Module._load (module.js:312:12)
at Module.runMain (module.js:487:10)
In meiner Suche fand ich einige Dinge über Probleme mit Abhängigkeiten, und einige Vorschläge über die Unvereinbarkeit zwischen der Steckdose.io und eine version von Nodejs, waren aber beide reden über ältere Versionen des Sockels.io und Node
Danke.
- aus welchem Verzeichnis hast du ausgeführt `npm install socket.io? Haben Sie eine node_modules-Ordner in Ihrem app-Verzeichnis? Wenn ja, enthält es eine Steckdose.io-Ordner?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erklärung
Gehen Sie zu Ihrem app-Verzeichnis
Löschen Sie Ihre aktuell installierte Module
Löschen Sie Ihre npm-cache (einige Fehler werden durch diese verursacht)
Installieren die Module aufgelistet, die in Ihrem
package.json
. Wenn Sie nicht über einepackage.json
installieren möchten, können Sie für ein bestimmtes Modul wie diesesBeispiel
In Ihrem Fall, wenn Sie nicht wissen, was ein
package.json
ist, bitte Lesen hier, bevor Sie fortfahren zu arbeiten, um auf nodejs.Musste ich arbeiten, um dieses problem in der folgenden Weise.
1) ich ein test-Programm in den folgenden Ordner.
In diesem Fall der source-code ist wie folgt.
2) ich geben Sie den vollständigen Pfad der Steckdose.io.
Ich dann geben Sie den folgenden Befehl, um die "progra~1".
Wenn Sie möchten, verwenden Sie ein Modul in mehr als ein Projekt oder clean-Projekt-Verzeichnis, das Sie hinzufügen können, "- g" - parameter auf " npm-Befehl. Etwa so:
Ich habe das gleiche problem. Das einzige, was Sie tun müssen, ist zu laufen "npm install socket.io" nicht in den Ordner, wo Sie installiert ist node.js aber in dem Ordner, wo Sie begann, Ihre Knoten-server-Datei. Zum Beispiel habe ich die Datei server.js mit code
`
`
einfach in den selben Ordner ausführen 'sudo npm install socket.io " und alles sollte gut gehen.
Für die Zukunft, für diejenigen Fragen, was das wirkliche problem ist, es ist erst zwei Jahre alten bug mit npm, die noch angesprochen werden: https://github.com/isaacs/npm/issues/1341
Das problem ist, dass wenn man eine Abhängigkeit des Sockels.io bereits installiert haben, in Ihrer top-level-node_modules Verzeichnis npm nicht installieren, die Abhängigkeit für alle Module, die Sie installieren abhängen.
Alles, was Sie wirklich tun müssen, wenn Sie in Probleme geraten, ist das folgende ein (ersetzen Sie
socket.io
mit welchem Modul gibt man trouble):Nicht finden kann-Modul " - Buchse.io' bedeutet, dass Sie nicht haben " - Buchse.io " - Modul installiert in Ihrem node-Module.
einfach den folgenden Befehl ausführen:
wenn Sie ausführen:
wird es aktualisieren Sie Ihr Paket.json-Datei.
Ich es beheben mit:
Und es laufen!
Das ist, wie Sie es in http://socket.io/get-started/chat/