Mongoose: js-bson: c++ bson-Erweiterung konnte nicht geladen werden, unter Verwendung der reinen JS-Version

Erstellt am 7. Sept. 2014  ·  115Kommentare  ·  Quelle: Automattic/mongoose

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).

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:

"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.

Alle 115 Kommentare

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.(child_process.js:1176:11)
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.(c:\Raj\project\meandemo\node_modules\express\lib\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.(c:\Raj\project\meandemo\server.js:23:5)
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.

Für iojs-Benutzer:

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:

  • AWS Ubuntu-Computer: Ubuntu 14.04.1 LTS
  • node.js v0.12.7
  • Mungo 4.1.12
  • MongoDB 2.6.5

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:

  1. nvm installieren 4.1.0
  2. rm -rf node_modules/
  3. npm installieren
  4. Testen Sie die App und sehen Sie, ob die Warnung auftritt

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.

[FEST]

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!!!!! :@

@GST5555 Wenn Sie in Echtzeit Hilfe erhalten
Gitter.im
Locker

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen