Ein Total Node Noob hier. Ich habe versucht, eine Beispielknoten-App einzurichten, aber der folgende Fehler tritt jedes Mal auf, wenn ich versuche, ihn auszuführen:
Knoten App
Failed to load c++ bson extension, using pure JS version
events.js:72
throw er; // Unhandled 'error' event
^
Error: failed to connect to [#$%67890 :27017]
at null.<anonymous> (/home/thejazeto/code/nodejs/authen/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/server.js:553:74)
at EventEmitter.emit (events.js:106:17)
at null.<anonymous> (/home/thejazeto/code/nodejs/authen/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:140:15)
at EventEmitter.emit (events.js:98:17)
at Socket.<anonymous> (/home/thejazeto/code/nodejs/authen/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection.js:512:10)
at Socket.EventEmitter.emit (events.js:95:17)
at net.js:830:16
at process._tickCallback (node.js:415:13)
failed to connect to
, also denke ich, dass diebson
Nachricht möglicherweise nicht in Beziehung steht und eigentlich keine Rolle spielt. Sind Sie sicher, dass Ihre Mongo-Verbindungseinstellungen korrekt sind?Antworten:
Ich denke, Sie hatten nicht die Make-Tools zur Verfügung, als Sie Ihre Mongodb-Bibliothek installiert haben. Ich schlage vor, Sie tun
xcode-select --install
(auf einem Mac) odersudo apt-get install gcc make build-essential
(auf Ubuntu)und Renn
ODER einfach npm Update basierend auf @tobias Kommentar (nach der Installation von build-essential)
quelle
mongoskin
Moduls war.sudo apt-get install gcc make build-essential
Tipp ist einer der besten Node.js + Ubuntu-Entwicklungstipps, die ich je gesehen habe. Es ist ein absoluter Game-Changer, wenn Sie es gewohnt sind, Webanwendungen zu entwickeln und nur mit Node.js unter Ubuntu zu entwickeln.gcc
undmake
zusammen mitbuild-essential
? Letzteres hängt von den beiden anderen ab, sodass sie trotzdem installiert werden ( packages.ubuntu.com/trusty/build-essential ). Tunsudo apt-get install build-essential
sollte genug sein.Ich habe das gerade gelöst.
Wenn Sie das Mungo-Modul mit npm installieren, befindet sich kein integriertes bson-Modul im Ordner.
node_modules/mongoose/node_modules/mongodb/node_modules/bson/ext/index.js
Ändern Sie in der Datei die Zeilezu
und installieren Sie dann das bson-Modul mit npm.
quelle
Ich habe das Problem, dass die Erweiterung "Fehler beim Laden der C ++ - Bson-Erweiterung" auf raspbian (Debian für Himbeere) behoben wurde, folgendermaßen sortiert:
und dann
quelle
npm update
, ohne etwas anderes zu installieren.Ich konnte das nicht lösen
bis jetzt. Zunächst müssen Sie Systempakete haben, die von Pradeep Mahdevu erwähnt werden. Jene sind:
oder
Dann habe ich Node-Gyp installiert
Wie Datadracer sagte, aber das von ihm vorgeschlagene npm-Update ist riskant. Es aktualisiert alle Module, was gefährlich sein kann (manchmal API-Änderungen zwischen Versionen).
Ich schlage vor, in das Verzeichnis node_modules / mongodb / node_modules / bson zu gehen und von dort aus zu verwenden
Das hat das Problem für mich gelöst.
quelle
apt-get install python
) installieren und dann von innennode_modules/mongoose/node_modules/mongodb/node_modules/bson/
ausführen musstemake
. Dies erstelltRelease/bson.node
.Ein häufiges Problem ist, dass Node-Gyp Python 2.x benötigt. Wenn Ihr System
python
auf 3.x zeigt, kann esbson
ohne Vorwarnung nicht kompiliert werden. Sie können dies beheben, indem Siepython
in Ihrer npm-Konfiguration einen globalen Schlüssel festlegen , der auf die auf Ihrem System ausführbare 2.x-Datei verweist. Zum Beispiel unter Arch Linux:quelle
Auf WIN 8.1
Anscheinend habe ich in meiner
package.json
Datei eine falsche Version von Mungo verwendet.Ich habe die Zeile
"mongoose" : "^3.8.15"
von entferntpackage.json
.CLI:
Jetzt heißt es
"mongoose": "^4.0.6"
inpackage.json
und der Fehler, den ich hatte, ist weg.quelle
Ich verwende Ubuntu 14.04 und um es für mich zu beheben, musste ich einen Symlink erstellen, damit der Knoten auf NodeJS zeigt, wie hier beschrieben:
nodejs vs node auf ubuntu 12.04
Sobald ich das getan habe, habe ich diese Befehle erneut ausgeführt:
quelle
In meinem Fall habe ich zuerst versucht, in diesem Verzeichnis / node_modules / mongoose / node_modules / nachzuschauen , um zu bestätigen, dass ich das bson- Modul habe. Ich fand heraus, dass ich es überhaupt nicht hatte, dann rannte ich einfach
und dann
Alle wurden sortiert. In Ubuntu getestet und getestet.
quelle
make
ein/devel/node_modules/bson/
npm install bson
Ich wollte nur sagen, dass ich auch den Fehler hatte
Aber mit keinem der anderen Fehler. Ich habe alles versucht und es stellte sich heraus, dass die Mongodb-Treiber, die ich in der Datei package.json angegeben habe, nicht mit meiner Version von MongoDB kompatibel waren. Ich habe es auf meine neueste Version geändert, die (1.4.34) war und es hat funktioniert !!!
quelle
sudo npm rebuild
war das, was es für mich behoben hat.quelle
Ich habe diesen Fehler endlich behoben, indem ich meine Mongodb-Abhängigkeitsversion auf ~ 2.0.36 in aktualisiert habe
package.json
.quelle
Leider sind alle oben genannten Antworten nur zur Hälfte richtig. Es hat lange gedauert, dies herauszufinden.
Die Installation von Mongoose bson über npm löst eine Warnung aus und verursacht den Fehler ...
Das funktioniert wie Magie !!
quelle
$ node gyp rebuild module.js:341 throw err; ^ Error: Cannot find module '/private/tmp/js-bson/gyp' at Function.Module._resolveFilename (module.js:339:15) at Function.Module._load (module.js:290:25) at Function.Module.runMain (module.js:447:10) at startup (node.js:140:18) at node.js:1001:3
Für mich dauert es nur, diese Befehle in meinem API-Verzeichnis auszuführen:
quelle
Ich bin gerade gelaufen:
und
und alles wird ok.
quelle
Die bson-Erweiterungsnachricht ist nur eine Warnung . Ich erhalte sie ständig in meiner nodejs-Anwendung.
Dinge zu überprüfen:
quelle
Ich habe dieses Problem unter CentOS von behoben
quelle
Ich habe es behoben, indem ich Zeile 10 von geändert habe:
von:
zu:
quelle
Ich habe auch dieses Problem bekommen und es hat dazu geführt, dass meine Sitzungen nicht funktionieren. Aber auch nicht zu brechen ...
Ich habe eine Mungo-Verbindung verwendet.
Ich hatte das:
Sehr einfach. Aber die Anforderung blieb immer leer.
Hat den Trick gemacht. Pass auf, dass du kein 'Mongodb' in deinem package.json hast! Nur Mungo und Connect-Mongo.
quelle
So habe ich das Problem unter Ubuntu behoben:
ln -s /usr/bin/nodejs /usr/bin/node
npm install node-gyp
cd node_modules/mongodb/node_modules/bson
node-gyp rebuild
Inspiriert von @mbochynski Antwort, aber ich musste zuerst einen symbolischen Link erstellen, sonst schlug die Neuerstellung fehl.
quelle
Ich hatte die gleichen Probleme, versuchte so viele Optionen, aber in der letzten
npm intall
in meinem mittleren App-Ordner funktionierte.quelle
Ich hatte dieses Problem, weil ich den Ordner node_modules in mein Git-Repository aufgenommen habe. Als ich die node_modules auf dem anderen System neu erstellt habe, hat es funktioniert. Einer von ihnen lief unter Linux, der andere unter OS X. Vielleicht hatten sie auch andere Prozessorarchitekturen.
quelle
Ich hatte das gleiche Problem auf meiner EC2-Instanz. Ich denke, die ursprüngliche Ursache war, dass bei der Installation von Mongo eine Node-Instanz ausgeführt wurde. Ich habe den Knotendienst gestoppt und bin dann gelaufen
innerhalb des Ordners der obersten Ebene meines Knotenprojekts. Dies hat das Problem behoben und alles war wie neu
quelle
Ich habe versucht, einen Knoten auf einem freigegebenen Ordner einer virtuellen Maschine (Vagrant) auszuführen. Das war ein problem Mein Host-Computer ist Windows, ein unter Windows installierter Knoten, der wie ein Zauber funktioniert hat. Wenn Sie also eine virtuelle Maschine verwenden, versuchen Sie einfach, den Knotenserver auf der Hostmaschine auszuführen.
quelle
Ich hatte nur das gleiche Problem und buchstäblich funktionierte nichts für mich. Der angezeigte Fehler
kerberos
verursacht das Problem und war eine dermongoose
Abhängigkeiten. Da ich unter Ubuntu bin, dachte ich, dass es irgendwo zwischen den global installierten Paketen - in/usr/lib/node_modules
viasudo
- und denen, die sich im Benutzerbereich befinden, Berechtigungsprobleme geben könnte .Ich habe
mongoose
global installiert -sudo
natürlich, und alles begann wie erwartet zu funktionieren.PS Das
kerberos
Paket wird jetzt auch global neben installiertmongoose
, aber ich kann mich nicht erinnern, ob ich es absichtlich getan habe - während ich versucht habe, das Problem zu lösen, oder ob es von Anfang an da war.quelle
Ich arbeite an Docker mit centOS 7 und habe das gleiche Problem festgestellt.
Nachdem ich mich umgesehen und mehrere Versuche unternommen hatte, konnte ich dieses Problem beheben, indem ich mongodb und mongodb-server installierte
Ich denke nicht, dass dies der beste Weg ist, um den Minimalbehälter herzustellen. aber ich kann den Umfang auf die folgenden Pakete beschränken
quelle
Unter Windows 7.1 haben mir diese Anweisungen geholfen, meine Build-Umgebung zu reparieren:
https://github.com/mongodb/js-bson/issues/58#issuecomment-68217275
http://christiankvalheim.com/post/diagnose_installation_problems/
quelle
Ich konnte das Problem beheben, indem ich monk package deinstallierte und neu installierte. Die Erstinstallation hatte anscheinend eine beschädigte Mongodb / Bson-Abhängigkeit.
quelle
Followint @ user1548357 Ich habe beschlossen, die Moduldatei selbst zu ändern. Um die Probleme zu vermeiden, auf die in den folgenden gültigen Kommentaren hingewiesen wird, habe ich meine Änderungen in ein Nachinstallationsskript aufgenommen, damit ich es festlegen und vergessen kann und sicher sein kann, dass es ausgeführt wird, wenn meine Module installiert werden.
und das Skript ist:
quelle
Beenden Sie das Problem einfach, indem Sie einfach diese Zeile hinzufügen und den Blockpfad abfangen:
node_modules/mongoose/node_modules/mongodb/node_modules/bson/ext/index.js
Das ist alles!!!
quelle
Das einzige, was mir unter Windows 7 (x64) hilft: https://stackoverflow.com/a/29714359/2670121
Installieren Sie Node und Python mit x32-Versionen neu.
Ich habe viel Zeit mit diesem Fehler verbracht:
und schließlich, als ich das Modul
node-gyp
(zum Erstellen nativer Addons) und sogar das Windows SDK mit Visual Studio installierte, erkannte nodejs das zusammengebaute Modul nichtbson.node
als Modul. Nach der Neuinstallation ist das Problem behoben.Was bedeutet dieser Fehler?
Eigentlich ist es sogar kein Fehler. Sie können immer noch Mungo verwenden. Aber in diesem Fall haben Sie anstelle der schnellen nativen Realisierung des
bson
Moduls erhaltenjs-realization
, die langsamer ist.Ich habe viele Tipps gesehen wie: "Pfad tief in node_modules bearbeiten ..." - was völlig nutzlos ist, da es das Problem nicht löst, sondern nur die Fehlermeldungen ausschaltet.
quelle