Ich habe auf Fork
geklickt, das Repo geklont und dieses Modul an mein Projekt angehängt. Ich bekomme diesen Fehler
js-bson: Failed to load c++ bson extension, using pure JS version
nodejs v0.11.13
, zuletzt osx
. Es sieht so aus, als ob das Problem beim Modul mongodb
(funktioniert mit bson 0.2.15).
Gleiches Problem
Gleiches Problem hier; Das Zurücksetzen auf 3.8.15 behebt das Problem unter OSX unter 0.11.13.
Ja das ist mir auch schon aufgefallen. Ihr Code wird immer noch funktionieren, nur haben Sie möglicherweise eine schlechtere Leistung. Ich werde das für die nächste Version beheben.
OK
Gleiches Problem
Hier gilt das gleiche. Bleibt 3.8.15 bis Änderungen.
Ok.... Gleiches Problem!
Gibt es hierzu Neuigkeiten?
Ich hatte das gleiche Problem (Mungo 3.8.19 und Knoten 0.10.33). Ich habe es gerade gelöst, nachdem ich festgestellt habe, dass npm install (und npm update) die Debug-Version von bson aber index.js kompiliert (in meinem Fall in node_modules/mongoose/node_modules/mongodb/node_modules/bson/ext/index.js platziert) benötigen die Release-Version. Wie Sie in diesem Abschnitt des Codes sehen können:
try {
// Load the precompiled win32 binary
if(process.platform == "win32" && process.arch == "x64") {
bson = require('./win32/x64/bson');
} else if(process.platform == "win32" && process.arch == "ia32") {
bson = require('./win32/ia32/bson');
} else {
bson = require('../build/Release/bson');
}
} catch(err) {
// Attempt to load the release bson version
try {
bson = require('../build/Release/bson');
} catch (err) {
console.error("js-bson: Failed to load c++ bson extension, using pure JS version");
bson = require('../lib/bson/bson');
}
}
Ich bin in das Build-Verzeichnis gegangen und habe einfach bson mit dem folgenden Befehl kompiliert
make BUILDTYPE=Release all
Irgendwo im Repository wurde es von Release auf Debug geändert, aber ich habe nicht danach gesucht.
@Gas3 Welche Version von npm
Sie und auf welcher Plattform läuft das? Dies sollte in Stable Node 0.10.x wirklich nicht passieren.
Außerdem habe ich es geschafft, dies zu reproduzieren - sieht aus wie ein sauberes npm install
mit npm 2.0.0 (die Version, die mit Knoten 0.11.14 geliefert wird) und Knoten 0.11.14 macht dies gut. Das heißt, rm -rf node_modules && npm install
. Können Sie alle überprüfen, ob das hilft?
über dem Meeresspiegel 2.1.7 auf Os X 10.9.5
Können Sie eine saubere npm-Installation versuchen - kill off node_modules und dann npm install
? Das klingt wirklich nach einem Problem beim Ändern von Knotenversionen, ohne js-bson neu zu erstellen.
+1
@brunobatista versuche rm -rf
auf deinen node_modules und führe eine saubere npm-Installation durch.
Gleiches Problem:
Knotenversion: v0.10.35
npm-Version: 2.1.18
Selbes Problem hier:
Betriebssystem: Arch Linux
Knotenversion: v0.10.35
npm-Version: 2.1.18
Mungo-Version: 3.8.21
Versucht 'rm -rf node_modules; npm-Cache sauber; npm install' ohne Glück.
Versucht auch mit Mongoose Version 3.8.15 mit den gleichen Ergebnissen.
Das gleiche Problem trat unter Ubuntu 14.04 auf. Meine Schritte:
1) npm auf 2.1.18 von 1.3 aktualisiert
2) npm-Cache bereinigen
3) rm -rf node_modules
4) npm i
Es klappt!
Aber ich sehe einen Fehler unter Windows 8.1. Dieses "erforderlich" wirft einen Fehler:
bson = require('./win32/ia32/bson');
The specified procedure could not be found.
C:\Users\d.kiriliuk\Projects\vozovoz\node_modules\mongoose\node_modules\mongodb\node_modules\bson\ext\win32\ia32\bson.node
Datei bson.node existiert
Pläne, dies zu beheben?
Gleiches Problem
Betriebssystem: OSX 10.10.2
Knotenversion: v0.10.36
npm-Version: 2.3.0
Mungo-Version: 3.8.22
Versucht 'rm -rf node_modules; npm-Cache sauber; npm install' ohne Glück.
Wenn ich Mungo benötige, bekomme ich diese Ausgabe:
[Error: Module did not self-register.]
js-bson: Failed to load c++ bson extension, using pure JS version
+1
Gleiches Problem!!
Betriebssystem: UBUNTU 14.04 (x64)
Knotenversion: 0.12.0
npm-Version: 2.5.1
Mungo-Version: 3.8.21
[Error: node_modules/mongoose/node_modules/mongodb/node_modules/bson/build/Release/bson.node: undefined symbol: node_module_register]
(err): js-bson: Failed to load c++ bson extension, using pure JS version
Irgendein Workaround oder Pläne zur Behebung?
ich habe nichts gefunden :(
Ich versuche meine Pakete neu zu installieren...
bson mit node-gyp neu erstellen
npm-Cache leeren und ....
nichts ist passiert.
Trotzdem habe ich diese Nachricht bekommen
Ich aktualisiere mein Mungo-Paket auf 3.9.7
Das Problem wurde behoben, aber ich habe diese Nachricht von Mungo erhalten:
##############################################################
#
# !!! MONGOOSE WARNING !!!
#
# This is an UNSTABLE release of Mongoose.
# Unstable releases are available for preview/testing only.
# DO NOT run this in production.
#
##############################################################
FEST!
Ich verwende die neueste stabile Version von Mungo (3.8.23)
das problem behoben :)
"Beheben" ist dies im Allgemeinen nicht wirklich möglich, da diese Fehlermeldung eine von vielen Bedeutungen haben kann. Es kann bedeuten, dass Sie keine richtige Python-Version oder keinen richtigen C++-Compiler installiert haben (wegen Node-Gyp), es kann bedeuten, dass Sie die Node-Versionen gewechselt haben, als Sie npm installiert haben mongoose usw.
Du gewinnst!
Bitte entschuldigen Sie, es war meine Schuld.
builderror.log:
gyp ERR! Fehler konfigurieren
gyp ERR! Stack-Fehler: Die ausführbare Python-Datei "python" ist v3.4.2, die von gyp nicht unterstützt wird.
gyp ERR! stack Sie können den Schalter --python übergeben, um auf Python >= v2.5.0 & < 3.0.0 zu zeigen.
gyp ERR! Stack bei failPythonVersion (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:108:14)
gyp ERR! Stack unter /usr/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:97:9
gyp ERR! Stack bei ChildProcess.exithandler (child_process.js:735:7)
gyp ERR! Stack bei ChildProcess.emit (events.js:110:17)
gyp ERR! stapeln bei mayClose (child_process.js:1008:16)
gyp ERR! am Socket stapeln.
gyp ERR! Stack bei Socket.emit (events.js:107:17)
gyp ERR! Stack bei Pipe.close (net.js:476:12)
gyp ERR! System Linux 3.14.27-1-lts
gyp ERR! Befehl "node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/node/sites/hellooo/src/node_modules/mongoose/node_modules/mongodb/node_modules/bson
gyp ERR! Knoten -v v0.12.0
gyp ERR! node-gyp -v v1.0.2
gyp ERR! nicht ok
In meinem Fall war die Lösung:
npm config set python python2.7
Mungo wieder installieren und arbeiten.
Ich habe diese Zeilen aus der Ausgabe von 'npm install' nicht beachtet:
[email protected] installiere /home/node/sites/hellooo/src/node_modules/mongoose/node_modules/mongodb/node_modules/bson
(node-gyp rebuild 2> builderror.log) || (Ausgang 0)
Dies bedeutet, dass beim Erstellen von bson ein Fehler aufgetreten ist, der mir nicht aufgefallen ist.
Vielen Dank @vkarpov15.
Ja, ich vergesse zu sagen, dass ich meine npm-Python-Konfiguration aktualisiert habe.
tnx @vkarpov15
Hi,
Ich habe "rm -rf node_modules && npm install" ausgeführt und sehe unten.
/
[email protected] install c:\Raj\project\meandemo\node_modules\mongoose\node_modu
lesmongodb\node_modules\kerberos
(node-gyp rebuild 2> builderror.log) || (Ausgang 0)
c:\Raj\project\meandemo\node_modules\mongoose\node_modulesmongodb\node_modules\
kerberos>node "c:\Programme\nodejs\node_modulesnpmbin\node-gyp-bin....\
node_modules\node-gypbin\node-gyp.js" neu erstellen
[email protected] install c:\Raj\project\meandemo\node_modules\mongoose\node_modules
mongodb\node_modulesbson
(node-gyp rebuild 2> builderror.log) || (Ausgang 0)
Wenn ich meinen Server starte, erhalte ich die folgende Fehlermeldung.
{ [Fehler: Modul '../build/Release/bson' nicht gefunden] Code: 'MODULE_NOT_FOUND' }
js-bson: c++ bson-Erweiterung konnte nicht geladen werden, unter Verwendung der reinen JS-Version
c:\Raj\project\meandemo\node_modules\express\lib\router\route.js:170
werfen Sie einen neuen Fehler (msg);
^
Fehler: Route.get() erfordert Callback-Funktionen, hat aber ein [Objekt nicht definiert]
bei Route.
r\route.js:170:15)
bei Array.forEach (nativ)
at Route.(anonyme Funktion) als get
at EventEmitter.app.(anonyme Funktion) (c:\Raj\project\meandemo\node_modul
es\express\lib\application.js:429:19)
bei Objekt.
bei Module._compile (module.js:460:26)
bei Object.Module._extensions..js (module.js:478:10)
bei Module.load (module.js:355:32)
bei Function.Module._load (module.js:310:12)
bei Function.Module.runMain (module.js:501:10)
Hier meine Versionsdetails:
Betriebssystem: Windows 7
Knoten: 0.12.0
Mungo: 3.8.23
npm: 2.5.1
Bitte vorschlagen
Hallo @rajnav , schau dir builderror.log an, es kann dir den Ursprung des Problems zeigen.
Gleiches Problem, aber builerror.log enthält nur eine Zeile:
child_process: customFds option is deprecated, use stdio instead.
in project/node_modules/mongoose/node_modules/mongodb/node_modules/bson
Ich verwende osx Yosemite und den Knoten 0.12.x
Ich habe diese Warnung auch bekommen, aber bei mir hat es funktioniert.
Ich verwende Fedora 20 mit Knoten 0.12.x und habe diese Warnung erhalten. Ist es sicher, damit weiterzuarbeiten?
Ich hatte keine Probleme mit Knoten 0.10.x
Es scheint eine veraltete Warnung zu sein, aber unsicher über die Nachwirkungen. Wie ich schon sagte, bei mir funktioniert es einwandfrei.
@rajnav der Fehler sieht aus wie in Express. Der Fehler bson not found ist eine Warnung, dass die native kompilierte bson-Binärdatei nicht gefunden werden konnte und keinen Absturz verursachen sollte.
Außerdem habe ich die Warnung vor der Einstellung der Option customFds gesehen. Sollte noch funktionieren. Ich werde genauer untersuchen, woher das kommt.
builderror.log-Dateien liefert eine Antwort.
Ich habe ein --python=python2.7
Flag mit npm install übergeben, genau wie es gefragt wurde, und keine Fehler mehr. Es hat sowohl bei Windows 64-Bit- als auch bei Ubuntu-Installationen funktioniert.
npm install --python=[path to python] mongoose
PS
Auf Windows-Rechner habe ich immer noch
child_process: customFds option is deprecated, use stdio instead.
in der Datei builderror.log, aber dies führt nicht dazu, dass Fehler in der Knotenkonsole angezeigt werden, wenn die Anwendung ausgeführt wird.
Mungo: 3.8.24
npm: 2.7.9
Betriebssystem: Arch Linux
tun
rm -rm node_modules/
npm cache clean
npm config set python python2.7
npm install
hat bei mir funktioniert.
Mach eine saubere npm install
ist mir nach dem Aktualisieren von Knoten passiert.
Mungo 3.8.21
Ubuntu 14.04.2
Verwenden von
npm config set python python2.7
cd node_modules/mongoose/node_modules/mongodb/node_modules/bson
npm install
hat bei mir funktioniert!
Python ist also eine Voraussetzung, um Mungo zu verwenden??? Es ist in den Dokumenten nicht klar, daher darf ich es nicht in der Produktionsumgebung installieren. (Sofern nicht dokumentiert...) :(
Mongoose benötigt Python nur insofern, als node-gyp (Knoten-Wrapper um das v8-Build-System) python erfordert . Python ist keine Laufzeitabhängigkeit für Mungo. Wenn Sie Dokumentation benötigen, dass Mungo Python benötigt, um den C++-Bson-Parser zu erstellen, klicken Sie hier .
Aber auch hier funktioniert Mungo wie erwartet, auch wenn es den bson-Parser nicht erstellen kann. Die einzige Funktion, die für den Erfolg Node-Gyp erfordert, ist der Kerberos-Authentifizierungsmechanismus.
Vielen Dank,
@jayflo das ist auch für mich worf, jetzt will ich keine Probleme mehr damit!!
+1 Hier mongodb/js-bson/issues/118
So werden Ihre Probleme gelöst:
$ cd node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/
$ npm install
Für mich war also ziemlich klar, dass derjenige schuld ist, der mongodb-core in mongodb in mongoose integriert hat. Jemand hat dort eine npm-Installation verpasst. Gibt es eine Möglichkeit, dies zu eskalieren, da eindeutig Tausende von Benutzern betroffen sind und die (Geschäfts-)Auswirkungen zumindest meiner Meinung nach als sehr hoch angesehen werden können, aber ich habe mich zuvor geirrt.
Niemand hat eine npm-Installation verpasst, es funktioniert gut, wenn Ihr System so konfiguriert ist, dass es node-gyp ordnungsgemäß ausführt. Abgesehen davon ist die Konfiguration Ihres Systems für die ordnungsgemäße Ausführung von node-gyp ein großer Schmerz in der Hinterhand, daher erwägen wir, vorab Binärdateien zu erstellen und npm install zuerst versuchen zu lassen, eine vorgefertigte Binärdatei herunterzuladen, es sei denn, Sie entscheiden sich dafür.
Was die Auswirkungen auf das Geschäft angeht, ist dies wiederum eine _Warnung_, kein _Fehler_.
Danke für deine klärende Antwort. grunt und node starten nicht, wenn ich npm nicht im mongo-core-Verzeichnis installiere, daher ist diese Warnung zumindest in meinem Szenario ein Show-Stopper und offensichtlich (nach oben scrollen) in vielen anderen. Ich kann sehen, dass dies aus Ihrer Sicht keines Ihrer Projekte betrifft, aber es kann nicht sofort unter Linux, Mac und Windows ausgeführt werden.
Am 17.04.2015 um 15:33 schrieb Valeri Karpov [email protected] :
klingeln, kein Fehler.
Wenn sie nicht starten, stimmt etwas anderes nicht. Diese Nachricht ist eine Warnung und hindert Sie nicht daran, Grunzen oder Node zu starten. Können Sie mir den Rest der Ausgabe Ihres ursprünglichen npm install-Befehls zeigen (bevor Sie npm install in mongodb-core ausgeführt haben)?
Noch einmal, wenn Sie diese Warnung jetzt loswerden möchten, besteht die einzige Möglichkeit im Moment darin, die Abhängigkeiten von
danke vkarpov15 für das Durchhalten in diesem Thread. Ich möchte nur ein +1 von mir abgeben, damit Sie wissen, dass es noch einen anderen mit dem gleichen Problem gibt. Davon abgesehen kann ich meine Anwendung immer noch ausführen, daher werde ich Ihren Hinweis befolgen, dass dies kein Fehler, sondern eine Warnung ist. Wir hoffen also, dass die Warnung in einem zukünftigen Update behoben wird, um zusätzliche Sicherheit zu bieten. Danke noch einmal.
zur Info ~ diese Warnung ist aufgetaucht, nachdem ich den Knoten von 10 auf 12 aktualisiert habe ...
@camachowebworld versuche, deine node_modules zu löschen und rm -rf node_modules && npm install
neu zu installieren. Normalerweise müssen Sie bei einem Upgrade der Hauptknotenversion alle nativen Erweiterungen, einschließlich bson, neu erstellen. Neuinstallation sollte helfen.
Ubuntu 14.04.1 LTS (AWS EC2)
Musste "sudo apt-get install build-essential" ausführen
Kann vielleicht jemandem helfen.
vkarpov15 danke für die antwort auf msg. sry wegen mangelnder erfahrung. Sie sagen, "versuchen Sie, Ihre node_modules zu löschen und rm -rf node_modules && npm install neu zu installieren". Ich bin auf Fenstern. wo führe ich diese befehle aus? Ich versuche, "rm -rf node_modules" in meinem Projektordner auszuführen, es sagt mir "rm is not.... command".
Löschen Sie einfach node_modules im Windows-Explorer, dasselbe. Führen Sie dann npm install dort aus, wo Sie es ursprünglich ausgeführt haben.
Allgemeiner Vorschlag, verwenden Sie git bash + mingw, wenn Sie Knotenentwicklung unter Windows durchführen
Habe den gleichen Fehler direkt nach dem Update des Knotens auf die 0.12.3
Version unter Windows 7 (x64) erhalten.
Ich habe bereits installiert: node-gyp, node-pre-gyp, python, .NET SDK
-> danach bekomme ich keine Fehlermeldungen mehr zur Montage. Und für Mungo 3.8.28 Ordner mongoose\node_modules\mongodb\node_modules\bson\build\Release
enthält diese Dateien:
/obj
/bson.exp
/bson.lib
/bson.node
/bson.pdb
Aber Nachricht
{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }
js-bson: Failed to load c++ bson extension, using pure JS version
erscheint immer noch
UPD : Ich habe eine Lösung für mich gefunden.
Neueste Versionen unterstützen nicht gut Mungo. Downgrade auf die letzte stabile Version v2.0.0 (verwenden Sie nvm um Gottes willen). Und es wird wie ein Zauber funktionieren!
Fügen Sie diese Informationen nur für den Fall hinzu, hier in unserer Firma hatten wir kürzlich dieses Problem.
In Windows habe ich dieses Problem gelöst, indem ich eine Zeile geändert habe:
node_modulesmongodb\node_modulesmongodb-core\node_modulesbson\node_modulesbons-ext\ext\index.js
die Zeile danach:
// Versuch, die Release-Bson-Version zu laden
Versuchen {
from: bson = require('../build/Release/bson');
an: bson = require('../../../lib/bson/bson');
Die Fehlermeldung:
{ [Fehler: Modul '../build/Release/bson' nicht gefunden] Code: 'MODULE_NOT_FOUND' }
js-bson: c++ bson-Erweiterung konnte nicht geladen werden, unter Verwendung der reinen JS-Version
ist jetzt weg und Mongo scheint gut zu funktionieren. Mit mongodb-Treiber ver. 2.0.33
Ich hoffe es hilft.
Kann jemand bestätigen, dass die Lösung von ChrisGciso praktikabel ist? Mit Atlassian Bamboo stehen wir jetzt vor dem gleichen, seit einem Jahr bestehenden Problem. Irgendwelche Ideen, wie man mit Bambus repariert?
Es ist keine Lösung, nur ein Hack. Auf die gleiche Weise können Sie die Konsolenausgaben in dieser Datei einfach entfernen.
Ich habe Mühe zu verstehen, dass der Fallback auf JS Bson und die Warnung, dass es nicht so leistungsfähig ist wie die C++-Implementierung, nur ein kosmetisches Problem ist.
Stephan Kristyn
Edelweißstr. 4
81541 München
+49 151 5461 8086
S. [email protected]
http://meshfields.de
Am 9. Juni 2015 17:38 +0200, [email protected] , schrieb:
Es ist keine Lösung, nur ein Hack. Auf die gleiche Weise können Sie die Konsolenausgaben in dieser Datei einfach entfernen.
—
Antworten Sie direkt auf diese E-Mail oder zeigen Sie sie auf GitHub an (https://github.com/Automattic/mongoose/issues/2285#issuecomment-110406406).
@ChrisGciso das
@nottinhill Ich habe leider keine Erfahrung mit Bambus, daher kann ich nicht helfen. Ob es sich um ein „kosmetisches Problem“ handelt, hängt von Ihrem Anwendungsfall ab – zum Beispiel in einer CI-Umgebung wie Bambus machen Sie sich im Allgemeinen zu viele Gedanken, hier eine Mikrosekunde zu sparen und dort ein paar Bytes Speicher zu sparen. In Ihrer Prod-Umgebung ist es potenziell wichtig, und wenn Sie wirklich die zusätzliche Leistung benötigen, müssen Sie Node-Gyp-Abhängigkeiten einrichten und neu installieren.
Eines der Dinge, die wir für die Zukunft hoffen, ist, die Lücke zwischen dem kompilierten Bson-Parser und dem JavaScript-Bson-Parser zu schließen. Wenn Sie dazu beitragen möchten, sind Sie herzlich willkommen unter http://github.com/mongodb/js-bson :)
@vkarpov15 "Fehler"-Nachrichten unter den Teppich zu
Vielleicht sollte es "Info" anstelle von "Error" heißen?
Ein fairer Punkt. Es gibt das native_parser
Flag , das mongodb daran hindern sollte, nach der kompilierten Version von js-bson zu suchen.
Ich bin auf Fedora 22, Knoten v0.12.4, heute Abend installiert
npm config set python python2.7
=> meine Probleme gelöst, thx
Ich hatte dieses Problem hier in einem Docker-Archlinux-Container und meine Lösung war:
$ pacman -S gcc make nodejs npm python2
$ npm config set python python2.7
$ npm install -g node-gyp
Mungo-Version 4.0.5
In Bezug auf den Bamboo Error - Ich habe das Problem _gelöst_, indem ich eine npm-Aufgabe erstellt und Ihre Umgebungsvariable wie gewohnt gesetzt habe, dann die folgenden Parameter:
install node-gyp
Sie werden Beschwerden über das fehlende globale Flag sehen, aber in Bamboo bevorzugen wir aufgrund der Migrationsflexibilität zumindest keine globalen Installationen.
Bearbeitungsfehler ist zurück:
build 17-Jun-2015 10:30:53 Running "mochaTest:src" (mochaTest) task
build 17-Jun-2015 10:30:53 { [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }
error 17-Jun-2015 10:30:53 js-bson: Failed to load c++ bson extension, using pure JS version
Ja, bei mir hat es funktioniert, danke.
Eigentlich musste ich auch gcc installieren und auch machen, damit es das cpp in eine Binärdatei kompilieren konnte.
—
Frederico Souza
RioBus-Mitbegründer - http://riob.us/ http://riob.us/
Telefon: (+55 21) 97285-8787
Rio de Janeiro, Brasilien
Em 17.06.2015, à(s) 05:22, Stephan Kristyn [email protected] escreveu:
Bezüglich des Bamboo Error - Ich habe das Problem gelöst, indem ich eine npm-Aufgabe erstellt und Ihre Umgebungsvariable wie gewohnt gesetzt habe, dann die folgenden Parameter:
installiere node-gyp
Sie werden Beschwerden über das fehlende globale Flag sehen, aber in Bamboo bevorzugen wir aufgrund der Migrationsflexibilität zumindest keine globalen Installationen.—
Antworten Sie direkt auf diese E-Mail oder zeigen Sie sie auf GitHub an https://github.com/Automattic/mongoose/issues/2285#issuecomment -112714644.
Ich hatte dieses Problem. Connect-Mongo auf 0.8.2 und Mongoose auf Version 4.0.7 aktualisiert, und es hat gut funktioniert.
Knoten v0.12.2, NPM 2.13.0, OSX 10.10.4
Gleiches Problem bei der Verwendung von sailsjs
Upgrade auf Mungo >= 4.0.6, damit bson keine C++-Erweiterungen mehr verwendet. In jedem Fall ist diese Nachricht nur eine Warnung.
Das Upgrade auf 4.0.6 hat bei mir funktioniert, danke vkarpov15.
Gleiches Problem. Verwenden Sie xUbuntu 15.04.
Ich habe versucht, das Paket von libkrb5-dev, nodejs-legacy zu installieren. und aktualisieren Sie Node.js v4.1.0, npm 2.14.3, Mungo 4.1.7. funktioniert aber nicht :-(
Hast du mal eine saubere Neuinstallation versucht? Machen Sie sich auch keine Sorgen über libkrb, es sei denn, Sie interessieren sich für Kerberos-Authentifizierung, Mungo wird auch ohne sie gut funktionieren.
@TimePower Haben Sie die globale Node-Gyp-Installation versucht?
Ich erhalte die folgende Fehlermeldung, wenn ich versuche, etwas zu verwenden, das mit Mongoose zu tun hat:
{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }
js-bson: Failed to load c++ bson extension, using pure JS version
Knoten 4.1.0 und Mungo 4.1.10.
rm -rf node_modules && npm cache clean && npm install
@jackdbernier
Es ist auch eine Warnung, kein Fehler.
Upgrade auf Mungo >= 4.0.6, damit bson keine C++-Erweiterungen mehr verwendet.
Ich verwende Mongoose 4.1.10 und erhalte immer noch den Fehler.
Ich habe das Downgrade von Mongodb auf 2.6 . gelöst
rm -rf node_modules && npm cache clean && npm install
funktioniert bei mir nicht, nach gleichem Fehler
Gleiches Problem hier:
rm -rf node_modules && npm Cache clean && npm install
funktioniert bei mir nicht, nach gleichem Fehler
js-bson: Failed to load c++ bson extension, using pure JS version
Mein Setup:
Das alles fing an, als ich nodejs aktualisierte, ein Upgrade auf Mongoose 4.1.12 half auch nicht.
Wie ist das noch ein Problem??? Sollte ich mir überhaupt die Mühe machen, hier weitere Informationen zu hinterlassen... das haben alle anderen für mich getan.... Wird das irgendjemand stabilisieren oder was???
Kein Fehler, nur eine Warnung. Außerdem gibt es in diesem Thread genug Informationen darüber, wie man node-gyp richtig einrichtet.
@vkarpov15 Danke für die Antwort. Dies ist ein Fehler, keine Warnung: npm install schlägt nach dieser Meldung fehl. Können Sie mir mehr darüber erzählen, wie dies mit Node-Gyp zusammenhängt.
npm install gibt diese Meldung nicht aus, daher bezweifle ich das stark.
Ich bezweifle, dass es in irgendeiner Weise mit Node-Gyp zusammenhängt. Ich verwende OS X 10.11, ich habe _viele_ nativer Abhängigkeiten wie node-sass verwendet, noch bevor sie Binärdateien für neue Node.js-Versionen veröffentlicht und korrekt kompiliert haben. Also mein Setup ist in Ordnung. Und doch:
node keystone.js
{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }
js-bson: Failed to load c++ bson extension, using pure JS version
Ich habe alle Abhängigkeiten direkt von Node.js 4 installiert.
@vkarpov15 du hast recht, mein Fehler. Der Fehler trat auf, als versucht wurde, das Modul im Knoten nach der Aktualisierung mit npm anzufordern. Ich habe mehrere Stunden lang versucht, es zum Laufen zu bringen, aber keiner der online gegebenen Ratschläge schien zu helfen, also habe ich erneut ein Downgrade durchgeführt und es seitdem nicht mehr angeschaut.
Das habe ich gerade gelöst.
Wenn Sie das Mungo-Modul von npm installieren, hat es kein eingebautes bson-Modul in seinem Ordner. Ändern Sie in der Datei node_modules/mongoose/node_modules/mongodb/node_modules/bson/ext/index.js die Zeile
bson = require('../build/Release/bson');
zu
bson = erfordern('bson');
Gleiches Problem bei FreeBSD.
Wie können wir die C++ BSON-Erweiterung erstellen?
npm install
sagte
> [email protected] install /usr/local/herbert/node_modules/ac-node/node_modules/mongodb/node_modules/kerberos
> (node-gyp rebuild 2> builderror.log) || (exit 0)
gmake: Entering directory '/usr/local/herbert/node_modules/ac-node/node_modules/mongodb/node_modules/kerberos/build'
SOLINK_MODULE(target) Release/obj.target/kerberos.node
COPY Release/kerberos.node
gmake: Leaving directory '/usr/local/herbert/node_modules/ac-node/node_modules/mongodb/node_modules/kerberos/build'
> [email protected] install /usr/local/herbert/node_modules/ac-node/node_modules/mongodb/node_modules/bson
> (node-gyp rebuild 2> builderror.log) || (exit 0)
gmake: Entering directory '/usr/local/herbert/node_modules/ac-node/node_modules/mongodb/node_modules/bson/build'
CXX(target) Release/obj.target/bson/ext/bson.o
bson.target.mk:88: recipe for target 'Release/obj.target/bson/ext/bson.o' failed
gmake: Leaving directory '/usr/local/herbert/node_modules/ac-node/node_modules/mongodb/node_modules/bson/build'
[email protected] node_modules/crypto
[email protected] node_modules/bson
selbes Problem hier
@vkarpov15 Ich bestätige, was @mgol sagt. Es gibt ein anderes Problem als eine falsche node-gyp
Konfiguration. Ich habe auch viele andere native Module, die richtig erstellt werden. Bei der Installation tritt kein Fehler auf.
Es gibt ein Problem mit node v4
, das verhindert, dass c++ bson extension
, was zu der Warnung js-bson: Failed to load c++ bson extension, using pure JS version
.
Hier ist das vollständige Protokoll, wenn ich mongoose
( [email protected]
) auf node v4
installiere
apairet$ rm -rf node_modules/mongoose
apairet$ npm install
-
> [email protected] install /sources/project/node_modules/mongoose/node_modules/mongodb/node_modules/bson
> (node-gyp rebuild 2> builderror.log) || (exit 0)
CXX(target) Release/obj.target/bson/ext/bson.o
> [email protected] install /sources/project/node_modules/mongoose/node_modules/mongodb/node_modules/kerberos
> (node-gyp rebuild 2> builderror.log) || (exit 0)
CXX(target) Release/obj.target/kerberos/lib/kerberos.o
[email protected] node_modules/mongoose
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected])
Der Vollständigkeit halber habe ich die neueste Version von mongoose
( [email protected]
) installiert, aber der Fehler blieb gleich:
apairet$ npm install mongoose<strong i="22">@latest</strong>
npm WARN peerDependencies The peer dependency kerberos@~0.0 included from mongodb-core will no
npm WARN peerDependencies longer be automatically installed to fulfill the peerDependency
npm WARN peerDependencies in npm 3+. Your application will need to depend on it explicitly.
-
> [email protected] install /sources/project/node_modules/mongoose/node_modules/mongodb/node_modules/kerberos
> (node-gyp rebuild) || (exit 0)
CXX(target) Release/obj.target/kerberos/lib/kerberos.o
CXX(target) Release/obj.target/kerberos/lib/worker.o
CC(target) Release/obj.target/kerberos/lib/kerberosgss.o
../lib/kerberosgss.c:509:13: warning: implicit declaration of function 'gss_acquire_cred_impersonate_name' is invalid in C99 [-Wimplicit-function-declaration]
maj_stat = gss_acquire_cred_impersonate_name(&min_stat,
^
1 warning generated.
CC(target) Release/obj.target/kerberos/lib/base64.o
CXX(target) Release/obj.target/kerberos/lib/kerberos_context.o
SOLINK_MODULE(target) Release/kerberos.node
[email protected] node_modules/mongoose
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected])
Lassen Sie mich wissen, ob ich zusätzliche Informationen bereitstellen kann.
rgds
@antoinepairet welche Version des Knotens genau? Es gibt viele v4-Versionen.
Danke für deine schnelle Antwort @vkarpov15. Ich schätze das sehr :-).
Entschuldigung, dass ich die Knotenversion in meinem vorherigen Beitrag nicht erwähnt habe. Ich habe 3 Knotenversionen getestet:
4.2.1
, 4.1.0
und 4.0.0
mit dem folgenden Verfahren:
Jedes Mal mit js-bson: Failed to load c++ bson extension, using pure JS version
Ich habe die erweiterten Tests unter OSX durchgeführt. Unter Linux habe ich nur 4.2.1
getestet.
Lassen Sie es mich wissen, wenn ich weitere Informationen / Tests bereitstellen kann.
Danke noch einmal
PS: @AsyaHristeva Es geht nicht um C++
IDE. andere native Module bauen prima :-)
Hmm auf 4.1.1 [email protected] funktioniert auf meinem Mac einwandfrei, und so oder so sollte dieser Fehler nicht auftreten, da [email protected] [email protected] verwendet, das keine C++-Erweiterung für BSON verwendet. Ich erhalte diesen Fehler mit [email protected], aber das liegt daran, dass die Legacy-Mongodb-Treiberversionen, [email protected], Knoten >= 4 nicht wirklich unterstützen .
Ich erhalte den gleichen Fehler mit Node v4.2.4, Mongo v2.6.11, OSX 10.11.2
npm install [email protected]
npm WARN peerDependencies The peer dependency kerberos@~0.0 included from mongodb-core will no
npm WARN peerDependencies longer be automatically installed to fulfill the peerDependency
npm WARN peerDependencies in npm 3+. Your application will need to depend on it explicitly.
> [email protected] install /Users/jw/Work/sp_app/node_modules/mongoose/node_modules/mongodb/node_modules/kerberos
> (node-gyp rebuild) || (exit 0)
CXX(target) Release/obj.target/kerberos/lib/kerberos.o
CXX(target) Release/obj.target/kerberos/lib/worker.o
CC(target) Release/obj.target/kerberos/lib/kerberosgss.o
../lib/kerberosgss.c:509:13: warning: implicit declaration of function 'gss_acquire_cred_impersonate_name' is invalid in C99 [-Wimplicit-function-declaration]
maj_stat = gss_acquire_cred_impersonate_name(&min_stat,
^
1 warning generated.
CC(target) Release/obj.target/kerberos/lib/base64.o
CXX(target) Release/obj.target/kerberos/lib/kerberos_context.o
SOLINK_MODULE(target) Release/kerberos.node
npm WARN unmet dependency /Users/jw/Work/sp_app/node_modules/latest/node_modules/npm requires request@'~2.67.0' but will load
npm WARN unmet dependency /Users/jw/Work/sp_app/node_modules/request,
npm WARN unmet dependency which is version 2.27.0
[email protected] node_modules/mongoose
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected])
Wenn ich meine App ausführe, erhalte ich:
{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }
js-bson: Failed to load c++ bson extension, using pure JS version
Ich frage mich, ob dies ein OSX-Problem ist, da ich unter Linux keine Probleme habe. Könnte dies etwas mit dem gcc zu tun haben, dem standardmäßigen Clang-Compiler, der von XCode installiert wird.
gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 7.0.2 (clang-700.1.81)
Target: x86_64-apple-darwin15.2.0
Thread model: posix
@vkarpov15 hat Recht, aktualisiere Mungo auf 4.4.5, behebe dieses Problem
@vkarpov15 ,
Nein, die mongodb-Version hat damit nichts zu tun.
dieses Problem hatte ich auch
Betriebssystem: Windows 10
Knoten: v4.2.3
npm: 2.14.7
Ich habe einfach den Python-Pfad eingestellt
npm config set python python2.7
und installiere den Mungo wieder
npm install mongoose
und es hat funktioniert.
@nityanarayan44 Bei mir hat es funktioniert
@mgol
Ich verwende OSX 10.10.5, Knoten 4.4.2, npm 2.15.0, Keystone 0.3.17
Ich bin zu node_modules/keystone/package.json
gegangen und habe mongoose
aus den Abhängigkeiten entfernt, dann
npm config set python python2.7
npm install mongoose
das hat bei mir funktioniert:
Bei mir hat auch die @nityanarayan44- Lösung
Gleiches Problem.Meine Version ist Knoten 2.15, Plattform Centos
Es gibt keine solche Version von Node wie 2.15, also denke ich, du meinst io.js. Und
io.js wurde lange Zeit vom Upstream nicht unterstützt, Upgrade auf Node 4
oder 6 so schnell wie möglich.
Michał Gołębiowski
@arefm Thx, bei mir hat es funktioniert, die Version 3.8.23 zu aktualisieren. Außerdem wurde ein weiteres Problem gelöst: Länge ist nicht definiert und so weiter.
@mgol Er sprach über npm
. Die neueste Version von npm2 ist 2.15.4.
@mnpenner ich glaube es ist 3.8.8
@jwerre Ich sagte npm2. Einige von uns bleiben bei npm 2 hängen, weil 3 eine ganze Reihe verschiedener Probleme hat.
@mgol Entschuldigung, die npm-Version ist 2.15, nicht der Knoten.
@mnpenner Ja, du bist ein kluger Mann!
Bei der Verwendung mit Keystone hat dies für mich funktioniert, um diesen Fehler zu umgehen:
füge Folgendes zu meinen package.json
Deps hinzu:
"mongoose": "~4.4.16",
"mongodb": "~2.1.18",
"keystone": "^0.3.19",
dann
npm install
Endlich
rm -rf node_modules/keystone/node_modules/mongodb
rm -rf node_modules/keystone/node_modules/mongoose
Jetzt bekomme ich den Fehler nicht.
@aventurella Ich bin heute auf den gleichen Felsen
aber jetzt bekommen wir einige überflüssige Fehler und einige fehlende Fehler, ist das in Ordnung?
@tomwang1013 Das Aktualisieren von Mungo hat das Problem gelöst, aber irgendwie verbindet sich meine App nicht mit der DB .....
In unserem Fall wurde die c++-Version bson nicht gefunden, weil wir uns hinter einem Unternehmens-Proxy befanden und etwas im BSON-Build-Prozess ausreichen muss, um Dateien abzurufen. Als wir in node_modules/bson/builderror.log nachgesehen haben, sahen wir einen Fehler wie diesen:
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 hindeutet, dass der Proxy das Problem sein könnte.
Entschuldigung, dass ich die Kommentare dazu wieder erwecke, aber ich wollte dies für alle anderen posten, die in Zukunft darauf stoßen, da dieser Thread bei der Lösung unseres Problems sehr hilfreich war.
@aventurella danke für deinen Fix, es hat funktioniert! Kommt mir aber ein bisschen komisch vor.
Ich habe dieses Problem unter Windows 10, kann auch kein "einfaches" Beispiel ausführen ... soll die Installationsdateien alles liefern, um etwas auszuführen, oder zumindest die Anweisungen dazu haben ...
Das ist verdammt nervig!!!!! :@
Hilfreichster Kommentar
Bei der Verwendung mit Keystone hat dies für mich funktioniert, um diesen Fehler zu umgehen:
füge Folgendes zu meinen
package.json
Deps hinzu:dann
Endlich
Jetzt bekomme ich den Fehler nicht.