Ich erhalte die folgende Fehlermeldung:
{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }
js-bson: Failed to load c++ bson extension, using pure JS version
Hier sind meine Versionsdetails:
Betriebssystem: Windows 7
MongoDB: 2.6.5
Knoten: 0.12.0
Ich habe diese Dinge ausprobiert, bevor ich das Problem hier gepostet habe.
Ich ging zum
\node-modules\mongoose\node-modules\mongodb\node-modules\bson
Ordner und nahm unten die Änderung in der Binding-Gyp-Datei von'include_dirs': [ '<!(node -e "require(\'nan\')")' ]
bis vor'include_dirs': ["<!(nodejs -p -e \"require('path').dirname(require.resolve('nan'))\")"]
Hat diesen Befehl ausgeführt
npm install -g node-gyp
Ich habe die Mungo-Version auf 3.8.21 aktualisiert
package.json
Nichts funktioniert. Bitte vorschlagen
Antworten:
Finden Sie im npm Modul mongodb:
Ändern Sie den Pfad in die js-Version im catch-Block:
Zu:
Oder kopieren Sie die Datei in:
Von:
quelle
Ich hatte dieses Problem heute (19. Februar 2016) und habe es nur durch die Installation der neuesten Version von Mongoose gelöst. Versuchen Sie, dies in Ihr package.json aufzunehmen:
Hoffentlich hilft das. Hat es für mich gelöst!
quelle
Das Problem ist, wenn Sie mongoose über npm installieren, wird davon ausgegangen, dass Sie Python auf Ihren Fenstern installiert haben und versuchen, die erforderlichen Bibliotheken zu erstellen. Da Sie kein Python haben, wird die Erstellungsphase mit einer Warnung übersprungen. Wenn Sie Ihre Anwendung starten, sind die erforderlichen Module nicht vorhanden, sodass dieser Fehler angezeigt wird.
Um die Dinge richtig zu machen, installieren Sie zuerst Python (Version 2.7) auf Ihrem Computer von: https://www.python.org/downloads/ oder wenn Sie chockolatey installiert haben, geben Sie einfach ein
choco install python2
.Stellen Sie dann sicher, dass Ihre Python-Variable festgelegt ist. Sie können es an der Eingabeaufforderung wie folgt einstellen:
(Natürlich sollten Sie den Pfad entsprechend Ihrer Python-Position ändern.) Installieren Sie dann node-gyp:
Jetzt können Sie Mungo oder ein anderes Modul, das das Problem verursacht, neu installieren:
Diesmal sehen Sie einige gelbe statt rote Linien, aber der Fehler ist verschwunden.
quelle
--msvs-version=2012
oder2013e
je nachdem, was Sie installiert haben. zBnpm install mongoose --msvs-version=2012
Ich habe dieses Problem durch die Installation der Mogoose-Version behoben
3.8.23
quelle
Das hat bei mir funktioniert. Suchen Sie in Ihrem Arbeitsbereich nach dem Text:
Sie werden es wahrscheinlich in den Mungo- und Mönchmodulen finden.
Dann ersetzen Sie jeweils:
mit:
das ist alles!
quelle
Versuchen Sie
npm install [email protected]
und ersetzen Sie auchbson = require('../build/Release/bson');
zubson = require('../browser_build/bson');
in node_modules / bson / ext / index.jsquelle
Das hat bei mir funktioniert:
Gehen Sie zur Datei (in Ihrem Projekt):
node_modules/mongoose/node_modules/mongodb/node_modules/bson/ext/index.js
und ändern:
bson = require('../build/Release/bson');
zu:
bson = require('bson');
Referenz: https://github.com/mongodb/js-bson/issues/118
quelle
node_modules
Verzeichnis in die Quellcodeverwaltung eingecheckt?Kurze Antwort
Installieren Sie die neueste Version von Mongodb.
Eine etwas längere Antwort
Stellen Sie sicher, dass Ihre package.json die neueste Version von mongodb verwendet, entfernen Sie node_modules / mongodb und installieren Sie npm erneut. Wenn Sie mongodb nicht als direkte Abhängigkeit verwendet haben, versuchen Sie herauszufinden, welches Paket mongdb verwendet. Ich benutzte:
Also habe ich ./sails-mongo/package.json aktualisiert auf:
Entfernen Sie dann node_modules / mongodb und installieren Sie npm erneut. Scheint jetzt in Ordnung zu sein.
Noch längere Antwort
Ich mag die derzeit vorgeschlagene Art der Verwendung nicht
Seit dem Betrachten von ../browser_build/bson.js, einer 4k + Zeilen-Datei, die auch eine "nicht native" Implementierung zu sein scheint. Obwohl es keine Beschwerden ausspuckt, wird immer noch "reine JS-Version verwendet", was eine langsamere Leistung bedeutet.
Unter https://github.com/mongodb/js-bson/issues/145 und https://github.com/mongodb/js-bson/issues/165 scheint das Problem verursacht worden zu sein durch:
Also habe ich versucht, die gesamten node_modules zu entfernen und habe immer noch den gleichen Fehler erhalten. Und wenn man sich package.json von node_modules / mongodb ansieht, ist seine Version immer noch 1.4.26, nicht die neueste Version 2.1.7.
Anscheinend kommt mein Mongodb als Abhängigkeit von einem anderen Paket, das ich installiert habe: Segel-Mongo. Das Ändern der package.json von sails-mongo und das Wiederherstellen der npm-Installation lösen das Problem schließlich.
quelle
Bereitstellen von Keystone JS CMS Ich hatte den gleichen Fehler und denke, die eleganteste Lösung ist folgende:
Installieren
npm-check-updates
:package.json
Überprüfen Sie in Ihrem Keystone-Site-Verzeichnis, in dem es sich befindet, die Abhängigkeiten:Aktualisieren Sie dann alle Pakete:
Und schließlich, wenn Sie sich
jade
für Vorlagen entschieden haben, müssen Sie möglicherweise dasjade
Modul explizit installieren :quelle
Die markierte Antwort ist völlig falsch. Alles, was Sie tun müssen, ist, die Konsolenprotokollanweisung auszublenden und nichts zu tun, um das eigentliche Problem zu beheben. Sie können auch Ihre Augen schließen und es wird das gleiche Ergebnis erzielen.
Das Problem wird durch Node-Gyp und nur das verursacht. Der Zweck besteht darin, native Erweiterungen für bestimmte Module wie bson zu kompilieren.
Wenn es dies nicht tut , dann wird der Code auf die JS - Version Rückfall und Sie gefälligst so durch die informative Nachricht sagen:
Ich gehe davon aus, dass es bei der Frage wirklich darum geht, wie die native C ++ - Erweiterung kompiliert werden kann, anstatt die Nachricht einfach nicht zu sehen. Lassen Sie uns das ansprechen.
Damit Node-Gyp funktioniert, muss Ihr Node-Gyp mit Ihrem Node und C ++ - Compiler auf dem neuesten Stand sein (dies hängt von Ihrem Betriebssystem ab). Ebenso wichtig muss auch Ihr Modul auf dem neuesten Stand sein.
Deinstallieren Sie zuerst node-gyp und installieren Sie es erneut
Jetzt müssen Sie alle Knotenmodule in Ihrer App (einschließlich der nach Anforderungen installierten Module) mit bson vollständig deinstallieren und neu installieren. Das sollte den Fehler beheben. Sie können nach 'Release / bson' suchen und die Schuldigen finden.
Deinstallieren Sie diese Module und installieren Sie sie erneut.
Einfacher ist es, einfach den gesamten
node_modules
Ordner zu wiederholen :Wenn immer noch Probleme auftreten, ist entweder 1) Ihr Modul veraltet - überprüfen Sie den Issue-Tracker im Repo oder 2) Sie haben einen potenziellen Konflikt - manchmal haben wir beispielsweise einen lokalen Node-Gyp. Sie können selbst ausführen
node-gyp
und Versionen überprüfen.quelle
Beim Erstellen des Setups für einen
www.spotdekho.com
neuenwindows10
Computer konnte ich den Befehl"nodemon web.js"
aufgrund desselben Fehlers nicht ausführenHabe es durch die folgenden Schritte behoben:
Dadurch wird das Problem behoben.
PS: Ich benutze Mungo Version 4.8.8.
Danke :), hoffe es hilft jemandem.
quelle
In meinem Fall haben die mit mongoose (
npm install mongoose
) gelieferten Bits eine funktionierende Version desmongodb
Paketsnode_modules
Ordner.Die folgenden Schritte haben mir die Fehlerbehebung erspart:
npm install mongoose
node_modules\mongoose\node_modules\mongodb
in meinennode_modules
Stammordner kopieren (alle mitgelieferten Versionen überschreibennpm install mongodb
)Failed to load c++ bson extension...
Fehler (oder ändern Sie den Code, um das Problem nicht zu berücksichtigen).quelle
Als ich solche Fehler bekam, habe ich ein Upgrade von Knoten v0.10 auf Knoten v4.xx durchgeführt. Was ich tun musste, war eine neuere Version von gcc zu installieren (ich glaube ich hatte gcc v4.4.x oder so). Ich habe auf gcc 4.7.2 aktualisiert und die Dinge haben danach funktioniert.
quelle
Ich hatte auch das gleiche Problem mit bson.
versuchen Sie eine neuere Mungo-Version
löste das Problem.
Massimo.
quelle
Führen Sie diesen Befehl aus, um mongoose zu deinstallieren.
npm uninstall --save mongoose
Installieren Sie ihn anschließend erneut, aber diesmal wirdnpm
automatisch die neueste Version von mongoose run installiert.npm install --save mongoose
Dies hat bei mir funktioniert.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
Wenn Sie Windows 8.1 verwenden, möchten Sie möglicherweise sicherstellen, dass Sie Ihre npm-Module mit dem richtigen Visual Studio-Compiler installieren.
Ich habe Visual Studio 2012 installiert, dieser Befehl funktioniert für mich. (nach dem Löschen von node_modules dir)
npm install --msvs_version = 2012
Aus irgendeinem Grund versucht node-gyp, die falsche Version des Visual Studio-Compilers zu verwenden. Mir ist auch aufgefallen, dass der Befehl "npm install" beim Installieren der Mongodb- und Mungoose-Module eine Warnung ausgibt, dass keine Knoten-Gyp-Abhängigkeiten vorliegen.
Nachdem Sie die richtige msvs_version verwendet hatten, wurden die Warnungen zur npm-Installation sowie die Konsolenwarnung beim Ausführen meiner nodejs-App gelöscht.
Möglicherweise möchten Sie auch sicherstellen, dass Sie die richtige Python 2.7.X-Version installiert haben und nicht Python 3.0.X.
Sie müssen auch sicherstellen, dass sich Python in Ihrem Env-Pfad befindet.
quelle
npm install --msvs_version=2012
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 (Fehler beim Laden der c ++ bson-Erweiterung) und schließlich, als ich das Modul
node-gyp
(zum Erstellen nativer Addons) und sogar das Windows SDK mit Visual Studio installiert habe, hat nodejs das zusammengesetzte Modul bson.node nicht als Modul erkannt. 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 erhalten Sie anstelle der schnellen nativen Realisierung des bson-Moduls eine js-Realisierung, die langsamer ist. Ich habe viele Tipps gesehen wie: "Pfad tief in node_modules bearbeiten ..." - was völlig nutzlos ist, weil es das Problem nicht löst, sondern nur die Fehlermeldungen ausschaltet.
quelle
Versuchen Sie dies
npm install bson
undnpm update
quelle
Sie sollten niemals Dateien im Bibliotheksordner NODE_MODULES ändern.
Diese Dateien sind das Ergebnis von
npm install
Befehls.Grundsätzlich denke ich für Windows-Benutzer - der richtige Weg ist die Verwendung von VM. Das mache ich, wenn ich von zu Hause aus arbeite.
Alles was du brauchst:
for CentOS: yum install gcc gcc-c++ make openssl-devel
for Debian/Ubuntu: apt-get install build-essential
und dann
npm install
oder, wenn Sie es bereits getan haben -npm update
quelle
Die beste Lösung für mich war ein Upgrade von Node-Mongodb 1.x auf 2.x.
quelle
Mir ist klar, dass dieser Thread mindestens 1 Jahr alt ist, aber er hat mir geholfen, wenn auch mit einem anderen Modul.
Ich habe mongoose-post-findv0.0.2 installiert und dieses Problem hat begonnen. Um das Problem zu beheben, habe ich die Vorschläge verwendet und zu \ node_modules \ mongoose-post-find \ node_modules \ bson \ ext navigiert und die Datei index.js geöffnet.
Die Datei beginnt mit einem try catch-Block, der versucht, die richtige bson-Version zu benötigen
Dies ist die korrigierte Version. Was geschah, war, dass es versucht hat, bson von ../build/Release/bson zu laden, es nicht finden konnte und in den Haken fiel. Es wurde versucht, bson erneut von ../build/Release/bson zu laden und ist natürlich fehlgeschlagen. Also ändere ich den Pfad im Fang, um in ../browser_build/bson zu suchen. Dies hat den Fehler behoben.
Ich poste dies der Vollständigkeit halber.
quelle
Ich hatte das gleiche Problem nach dem Upgrade der Ubuntu-Version auf 16.04. Ich habe auf diese Weise gelöst, hoffe es hilft.
quelle
In unserem Fall wurde die c ++ - Version bson nicht gefunden, weil wir uns hinter einem Unternehmensproxy befanden und etwas im BSON-Erstellungsprozess nach Dateien suchen muss. Als wir in node_modules / bson / builderror.log nachgesehen haben, haben wir einen Fehler wie den folgenden gesehen:
gyp WARN install got an error, rolling back install gyp ERR! configure error gyp ERR! stack Error: connect ECONNREFUSED gyp ERR! stack at errnoException (net.js:904:11) gyp ERR! stack at Object.afterConnect [as oncomplete] (net.js:895:19)
Was darauf hindeutete, dass der Proxy das Problem sein könnte. Das Festlegen der Umgebungsvariablen http_proxy und https_proxy hat das Problem behoben.
Es tut mir leid, dass ich Kommentare dazu wiedererweckt habe, aber ich wollte dies für alle anderen veröffentlichen, die dies in Zukunft tun, da dieser Thread bei der Lösung unseres Problems sehr hilfreich war.
quelle
Versucht npm install mongoose --msvs_version = 2012, wenn Sie mehrere Visual installiert haben, hat es für mich funktioniert
quelle
Erste Kopie
bson.js
Code ausbrowser_build folder
Zweitens erstellen Sie eine neue Datei
bson.js
und fügen Sie Code einDrittens speichern Sie die neue Datei in der Nähe von in
index.js
.quelle
Ich arbeite mit OS Windows 8.1 und hatte das gleiche Problem. Die Ursache des Problems war die Version von Python. Ich habe festgestellt, dass das Ursprungsproblem die Datei ... \ node_modules \ mongodb \ node_modules \ mongodb-core \ node_modules \ kerberos \ builderror.log überprüft.
Ich habe die richtige Version von Python (2.7.9 für 64 Bit) installiert und mein Problem behoben.
Hinweis: Die installierte Version von Python muss mindestens 2.7.5 und kleiner als 3.0.0 sein
quelle
Ich habe es versucht,
bson = require('../browser_build/bson');
aber am Ende ist ein anderer Fehler aufgetretenSchließlich habe ich dieses Problem einfach behoben, indem
npm update
das bson-Modul in Mungo behoben wird.quelle
Ich habe also das gleiche Problem und es passiert, dass die angegebene mongoDB-URL nicht existiert. Um dies zu beheben, müssen Sie in den Ordner ".. \ server \ config \ environment" gehen und den Link zu mongoDB in der Datei "development.js" bearbeiten.
Beispiel:
Ändern Sie also dieses "uri: 'mongodb: // localhost / test2-dev'" in einen echten Pfad zu Ihrer mongoDB-Datenbank.
Ich werde mich freuen, wenn mein Beitrag jemandem hilft ...
quelle
Finden Sie im npm-Modul mongodb ..node_modules \ mongodb \ node_modules \ bson \ ext \ index.js
und ändern Sie den Pfad zu js version im catch-Block
zu
bson = require('../browser_build/bson');
quelle