Mongoose: js-bson : échec du chargement de l'extension bson c++, en utilisant la version JS pure

CrĂ©Ă© le 7 sept. 2014  Â·  115Commentaires  Â·  Source: Automattic/mongoose

J'ai cliqué sur Fork , j'ai cloné le repo et j'ai attaché ce module à mon projet. j'obtiens cette erreur

js-bson: Failed to load c++ bson extension, using pure JS version

nodejs v0.11.13 , dernier osx . Il semble que le problĂšme soit avec le module mongodb (fonctionne avec bson 0.2.15).

Commentaire le plus utile

Lors de l'utilisation avec Keystone, voici ce qui a fonctionné pour moi pour surmonter cette erreur :

ajouter ce qui suit à mes package.json deps :

"mongoose": "~4.4.16",
"mongodb": "~2.1.18",
"keystone": "^0.3.19",

alors

npm install

finalement

rm -rf node_modules/keystone/node_modules/mongodb
rm -rf node_modules/keystone/node_modules/mongoose

Maintenant, je ne reçois pas l'erreur.

Tous les 115 commentaires

MĂȘme problĂšme

MĂȘme problĂšme ici ; la sauvegarde vers 3.8.15 rĂ©sout le problĂšme sur OSX sous 0.11.13.

Ouais j'ai remarquĂ© ça aussi. Votre code fonctionnera toujours, mais vous aurez peut-ĂȘtre de moins bonnes performances. Je vais corriger ça pour la prochaine version.

d'accord

MĂȘme problĂšme

Pareil ici. Restera 3.8.15 jusqu'Ă  ce que les changements.

D'accord.... MĂȘme problĂšme !

Une mise Ă  jour pour ceci?

J'ai eu le mĂȘme problĂšme (mangouste 3.8.19 et nƓud 0.10.33). Je viens de le rĂ©soudre aprĂšs avoir remarquĂ© que npm install (et npm update) compile la version Debug de bson mais index.js (placĂ© dans node_modules/mongoose/node_modules/mongodb/node_modules/bson/ext/index.js dans mon cas) nĂ©cessitent la version Release. Comme vous pouvez le voir dans cette section du code :

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');
    }
}

Je suis allé dans le répertoire de construction et j'ai simplement compilé bson avec la commande suivante

make BUILDTYPE=Release all

Quelque part dans le référentiel, il a été modifié de Release à Debug, mais je ne l'ai pas recherché.

@Gas3 quelle version de npm utilisez-vous et sur quelle plate-forme l'exĂ©cutez-vous ? Cela ne devrait vraiment pas se produire dans le nƓud stable 0.10.x.

De plus, j'ai rĂ©ussi Ă  reproduire cela - cela ressemble Ă  un npm install propre avec npm 2.0.0 (la version fournie avec le nƓud 0.11.14) et le nƓud 0.11.14 fait que cela fonctionne correctement. C'est-Ă -dire rm -rf node_modules && npm install . Pouvez-vous tous vĂ©rifier si cela aide?

au-dessus du niveau de la mer 2.1.7 sur Os X 10.9.5

Pouvez-vous essayer une installation propre de npm - supprimer node_modules puis npm install ? Cela ressemble vraiment à un problùme de changement de version de nƓud sans reconstruire js-bson.

+1

@brunobatista essayez rm -rf sur vos node_modules et effectuez une installation propre de npm.

MĂȘme problĂšme:
version du nƓud : v0.10.35
version npm : 2.1.18

MĂȘme problĂšme ici:
OS : Arch Linux
Version du nƓud : v0.10.35
version npm : 2.1.18
Version mangouste : 3.8.21

J'ai essayé 'rm -rf node_modules ; nettoyage du cache npm ; npm install' sans succÚs.
EssayĂ© Ă©galement avec la version 3.8.15 de Mongoose avec les mĂȘmes rĂ©sultats.

Le mĂȘme problĂšme Ă©tait sur Ubuntu 14.04. Mes pas:
1) Mise Ă  jour npm Ă  2.1.18 Ă  partir de 1.3
2) nettoyage du cache npm
3) rm -rf node_modules
4) npm je
Ça marche!

Mais je vois une erreur sur Windows 8.1. Ce "require" renvoie l'erreur :

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

Le fichier bson.node existe

Vous envisagez de résoudre ce problÚme ?

MĂȘme problĂšme

SystÚme d'exploitation : OSX 10.10.2
Version du nƓud : v0.10.36
version npm : 2.3.0
Version mangouste : 3.8.22

J'ai essayé 'rm -rf node_modules ; nettoyage du cache npm ; npm install' sans succÚs.

Lorsque j'ai besoin de mangouste, j'obtiens cette sortie :

[Error: Module did not self-register.]
js-bson: Failed to load c++ bson extension, using pure JS version

+1

MĂȘme problĂšme!!

SystÚme d'exploitation : UBUNTU 14.04 (x64)
version du nƓud : 0.12.0
version npm : 2.5.1
version mangouste : 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

Une solution de contournement ou des plans pour le réparer?

je n'ai rien trouvé :(
J'essaye de réinstaller mes paquets...
reconstruire bson avec node-gyp
nettoyer le cache npm et ....
rien ne s'est passé.
j'ai toujours ce message

Je mets Ă  jour mon package mangouste en 3.9.7
le problÚme est résolu mais j'ai reçu ce message de mangouste :

##############################################################
#
#   !!! MONGOOSE WARNING !!!
#
#   This is an UNSTABLE release of Mongoose.
#   Unstable releases are available for preview/testing only.
#   DO NOT run this in production.
#
##############################################################

FIXÉ!
J'utilise la derniĂšre version stable de mangouste (3.8.23)
le problÚme est réglé :)

"RĂ©parer" cela en gĂ©nĂ©ral n'est pas vraiment possible, car ce message d'erreur peut signifier l'une des nombreuses choses. Cela peut signifier que vous n'avez pas installĂ© une version appropriĂ©e de python ou un compilateur C++ appropriĂ© (Ă  cause de node-gyp), cela peut signifier que vous avez changĂ© de version de nƓud lorsque vous avez installĂ© mongoose par npm, etc.

Vous gagnez!

Veuillez m'excuser, c'Ă©tait de ma faute.

builderror.log :
gyp ERR ! erreur de configuration
gyp ERR ! Erreur de pile : l'exécutable Python "python" est la version 3.4.2, qui n'est pas prise en charge par gyp.
gyp ERR ! stack Vous pouvez passer le commutateur --python pour pointer vers Python >= v2.5.0 & < 3.0.0.
gyp ERR ! pile Ă  failPythonVersion (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:108:14)
gyp ERR ! pile Ă  /usr/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:97:9
gyp ERR ! pile Ă  ChildProcess.exithandler (child_process.js:735:7)
gyp ERR ! pile Ă  ChildProcess.emit (events.js:110:17)
gyp ERR ! pile Ă  peut-ĂȘtreClose (child_process.js:108:16)
gyp ERR ! pile Ă  Socket.(child_process.js:1176:11)
gyp ERR ! pile Ă  Socket.emit (events.js:107:17)
gyp ERR ! pile Ă  Pipe.close (net.js:476:12)
gyp ERR ! SystĂšme Linux 3.14.27-1-lts
gyp ERR ! commande "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 ! nƓud -v v0.12.0
gyp ERR ! node-gyp -v v1.0.2
gyp ERR ! pas d'accord

Dans mon cas, la solution Ă©tait :

npm config set python python2.7

RĂ©installez la mangouste et fonctionne.

Je n'ai pas fait attention à ces lignes de la sortie de 'npm install' :

[email protected] installer /home/node/sites/hellooo/src/node_modules/mongoose/node_modules/mongodb/node_modules/bson
(node-gyp reconstruction 2> builderror.log) || (sortie 0)

Cela signifie qu'il y a eu une erreur lors de la construction de bson que je n'avais pas remarquée.

Merci beaucoup @vkarpov15.

Oui, j'oublie de dire que j'ai mis Ă  jour ma configuration python npm.

tnx @vkarpov15

salut,
J'ai exécuté "rm -rf node_modules && npm install" et je vois ci-dessous.

/

[email protected] installer c:\Raj\project\meandemo\node_modules\mongoose\node_modu
lesmongodb\node_modules\kerberos
(node-gyp reconstruction 2> builderror.log) || (sortie 0)

c:\Raj\project\meandemo\node_modules\mongoose\node_modulesmongodb\node_modules\
kerberos>noeud "c:\Program Files\nodejs\node_modulesnpmbin\node-gyp-bin....\
node_modules\node-gypbin\node-gyp.js" reconstruire

[email protected] installer c:\Raj\project\meandemo\node_modules\mongoose\node_modules
mongodb\node_modulesbson
(node-gyp reconstruction 2> builderror.log) || (sortie 0)

Lorsque je lance mon serveur, j'obtiens une erreur ci-dessous.

{ [Erreur : Impossible de trouver le module '../build/Release/bson'] code : 'MODULE_NOT_FOUND' }

js-bson : échec du chargement de l'extension bson c++, en utilisant la version JS pure
c:\Raj\project\meandemo\node_modules\express\lib\router\route.js:170
lancer une nouvelle erreur (msg);
^
Erreur : Route.get() nécessite des fonctions de rappel mais a obtenu un [objet non défini]
Ă  Route.(c:\Raj\project\meandemo\node_modules\express\lib\route
r\route.js:170:15)
Ă  Array.forEach (natif)
Ă  Route.(fonction anonyme) comme get
Ă  EventEmitter.app.(fonction anonyme) (c:\Raj\project\meandemo\node_modul
es\express\lib\application.js:429:19)
Ă  l'objet.(c:\Raj\project\meandemo\server.js:23:5)
Ă  Module._compile (module.js:460:26)
Ă  Object.Module._extensions..js (module.js:478:10)
Ă  Module.load (module.js:355:32)
Ă  Function.Module._load (module.js:310:12)
Ă  Function.Module.runMain (module.js:501:10)

Voici les détails de ma version :
SystĂšme d'exploitation : Windows 7
nƓud : 0,12,0
mangouste : 3.8.23
npm : 2.5.1

Veuillez suggérer

Salut @rajnav , Jetez un Ɠil à builderror.log, il peut vous montrer l'origine du problùme.

MĂȘme problĂšme mais builerror.log ne contient qu'une seule ligne :

child_process: customFds option is deprecated, use stdio instead.

dans project/node_modules/mongoose/node_modules/mongodb/node_modules/bson

J'utilise osx yosemite et node 0.12.x

J'ai aussi reçu cet avertissement, mais cela a fonctionné pour moi.

J'utilise fedora 20 avec le nƓud 0.12.x et j'ai reçu cet avertissement. Est-il sĂ»r de continuer Ă  travailler avec ?
Je n'ai eu aucun problùme avec le nƓud 0.10.x

Cela semble ĂȘtre un avertissement de dĂ©prĂ©ciation, mais pas sĂ»r des sĂ©quelles. Comme je l'ai dit prĂ©cĂ©demment, cela fonctionne trĂšs bien pour moi.

@rajnav l'erreur ressemble à son dans Express. L'erreur bson not found est un avertissement indiquant qu'il n'a pas pu trouver le binaire bson natif compilé, ne devrait pas provoquer de plantage.

De plus, j'ai vu l'avertissement de dĂ©prĂ©ciation de l'option customFds. Devrait encore fonctionner. Je vais enquĂȘter plus pour savoir d'oĂč cela vient.

Les fichiers builderror.log fournissent une réponse.
J'ai passé un indicateur --python=python2.7 avec l'installation de npm, comme il l'a demandé, et plus d'erreurs. Il a fonctionné sur les installations Windows 64 bits et Ubuntu.

npm install --python=[path to python] mongoose

PS
Sur la machine Windows, j'ai toujours
child_process: customFds option is deprecated, use stdio instead.
dans le fichier builderror.log, mais cela n'entraĂźne aucune erreur dans la console de nƓud lors de l'exĂ©cution de l'application.

mangouste : 3.8.24
npm : 2.7.9
systÚme d'exploitation : Arch Linux

Faire
rm -rm node_modules/
npm cache clean
npm config set python python2.7
npm install
travaillé pour moi.

faire un ménage npm install
m'est arrivé aprÚs la mise à jour de node.

Mangouste 3.8.21
Ubuntu 14.04.2

À l'aide de

npm config set python python2.7
cd node_modules/mongoose/node_modules/mongodb/node_modules/bson
npm install

a fonctionné pour moi !

Donc, python est une exigence pour utiliser la mangouste ??? Ce n'est pas clair sur la doc, donc je ne suis pas autorisé à l'installer sur l'environnement de production. (Sauf documenté...) :(

Mongoose ne nĂ©cessite Python que dans la mesure oĂč node-gyp (node ​​wrapper autour du systĂšme de construction v8) nĂ©cessite python . Python n'est pas une dĂ©pendance d'exĂ©cution pour mongoose. Si vous avez besoin de documentation indiquant que mongoose a besoin de python pour construire l'analyseur C++ bson, cliquez ici .

Cependant, encore une fois, mongoose fonctionnera comme prĂ©vu mĂȘme s'il ne peut pas construire l'analyseur bson. La seule fonctionnalitĂ© qui nĂ©cessite node-gyp pour rĂ©ussir est le mĂ©canisme d'authentification Kerberos.

Merci beaucoup,

@jayflo, c'est aussi pour moi, maintenant je ne veux plus de problÚmes à cause de ça !!

+1 Ici mongodb/js-bson/issues/118

Cela résoudra vos problÚmes :

$ cd node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/
$ npm install

Il Ă©tait donc assez Ă©vident pour moi que celui qui a intĂ©grĂ© mongodb-core dans mongodb dans mongoose est le seul Ă  blĂąmer. Quelqu'un a ratĂ© une installation npm lĂ -bas. Existe-t-il un moyen d'intensifier cela, car il est clair que des milliers d'utilisateurs sont touchĂ©s et que l'impact (commercial) peut ĂȘtre considĂ©rĂ© en toute sĂ©curitĂ© comme trĂšs Ă©levĂ©, du moins Ă  mon avis, mais je me suis dĂ©jĂ  trompĂ©.

Personne n'a manqué une installation de npm, cela fonctionne bien si votre systÚme est configuré pour exécuter correctement node-gyp. Cela étant dit, la configuration de votre systÚme pour qu'il exécute correctement node-gyp est une tùche ardue pour l'arriÚre-plan, nous envisageons donc de pré-construire des binaires et de faire installer npm pour essayer de télécharger d'abord un binaire pré-construit, sauf si vous vous désinscrivez.

Quant Ă  l'impact commercial, encore une fois, il s'agit d'un _avertissement_, pas d'une _erreur_.

Merci pour votre réponse clarifiante. grunt et node ne démarreront pas si je n'installe pas npm dans le répertoire mongo-core, donc cet avertissement est un obstacle au moins dans mon scénario et évidemment (faites défiler vers le haut) dans de nombreux autres. Je peux voir que, de votre point de vue, cela ne concerne pas vos projets, mais il ne parvient pas à s'exécuter sous Linux, Mac et Windows.

Du 17.04.2015 Ă  15:33 schrieb Valeri Karpov [email protected] :

rning, pas une erreur.

s'ils ne dĂ©marrent pas, alors quelque chose d'autre ne va pas. Ce message est un avertissement et ne vous empĂȘchera pas de dĂ©marrer grunt ou node. Pouvez-vous me montrer le reste de la sortie de votre commande d'installation npm d'origine (avant d'exĂ©cuter npm install dans mongodb-core) ?

Encore une fois, si vous voulez vous débarrasser de cet avertissement maintenant, le seul moyen pour le moment est de configurer les dépendances de node-gyp .

merci vkarpov15 pour le coller dans ce fil. Je veux juste donner un +1 Ă  moi pour que vous sachiez qu'il y en a un autre avec le mĂȘme problĂšme. cela Ă©tant dit, je suis toujours en mesure d'exĂ©cuter mon application, donc je vais prendre votre avis qu'il ne s'agit pas d'une erreur, mais d'un avertissement. alors, espĂ©rons que l'avertissement sera rĂ©solu dans une future mise Ă  jour pour cette tranquillitĂ© d'esprit supplĂ©mentaire. Merci encore.

Pour info ~ cet avertissement est apparu aprùs la mise à jour du nƓud de 10 à 12...

@camachowebworld essayez d'effacer vos node_modules et de rĂ©installer rm -rf node_modules && npm install . GĂ©nĂ©ralement, lorsque vous effectuez une mise Ă  niveau de version de nƓud majeure, vous devez reconstruire toutes les extensions natives, y compris bson. La rĂ©installation devrait faire l'affaire.

Ubuntu 14.04.1 LTS (AWS EC2)
J'ai dû exécuter "sudo apt-get install build-essential"

Peut peut-ĂȘtre aider quelqu'un.

vkarpov15 merci d'avoir rĂ©pondu Ă  msg. sry sur le manque d'expĂ©rience. vous dites "essayez d'effacer vos node_modules et de rĂ©installer rm -rf node_modules && npm install". je suis sur windows. oĂč exĂ©cuter ces commandes ? j'essaie d'exĂ©cuter "rm -rf node_modules" dans mon dossier de projet, il me dit "rm n'est pas.... commande".

Supprimez simplement node_modules dans l'explorateur Windows, mĂȘme chose. Ensuite, exĂ©cutez npm install partout oĂč vous l'avez exĂ©cutĂ© Ă  l'origine.

Suggestion gĂ©nĂ©rale, utilisez git bash + mingw si vous faites du dĂ©veloppement de nƓuds sous Windows

Vous avez la mĂȘme erreur juste aprĂšs la mise Ă  jour du nƓud vers la version 0.12.3 sur Windows 7 (x64).
J'ai déjà installé : node-gyp, node-pre-gyp, python, .NET SDK -> aprÚs cela, je ne reçois plus de messages d'erreur concernant l'assemblage. Et pour la mangouste 3.8.28 dossier mongoose\node_modules\mongodb\node_modules\bson\build\Release
contient ces fichiers :

/obj
/bson.exp
/bson.lib
/bson.node
/bson.pdb

Mais message

{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }  
js-bson: Failed to load c++ bson extension, using pure JS version

apparaĂźt toujours

UPD : J'ai trouvé une solution pour moi.

Pour les utilisateurs d'iojs :

Les derniĂšres versions ne prennent pas bien en charge la mangouste. Passez Ă  la derniĂšre version stable v2.0.0 (utilisez nvm pour l'amour de Dieu). Et cela fonctionnera comme un charme!

En ajoutant cette information juste au cas oĂč, ici, dans notre entreprise, nous avons eu ce problĂšme rĂ©cemment.

Dans Windows, j'ai résolu ce problÚme en modifiant une ligne dans :

node_modulesmongodb\node_modulesmongodb-core\node_modulesbson\node_modulesbons-ext\ext\index.js

la ligne aprĂšs :

// Tentative de chargement de la version release bson
essayer {

de : bson = require('../build/Release/bson');
Ă  : bson = require('../../../lib/bson/bson');

Le message d'erreur :
{ [Erreur : Impossible de trouver le module '../build/Release/bson'] code : 'MODULE_NOT_FOUND' }
js-bson : échec du chargement de l'extension bson c++, en utilisant la version JS pure

est maintenant parti et mongo semble fonctionner correctement. Utilisation du pilote mongodb ver. 2.0.33

J'espÚre que ça aide.

Quelqu'un peut-il confirmer que la solution de ChrisGciso est viable ? Nous sommes maintenant confrontĂ©s Ă  ce mĂȘme problĂšme vieux d'un an avec Atlassian Bamboo. Des idĂ©es sur la façon de rĂ©parer avec Bamboo?

Ce n'est pas une solution, juste un hack. De la mĂȘme maniĂšre, vous pouvez simplement supprimer les sorties de la console dans ce fichier.

J'ai du mal à comprendre que le recours à JS Bson et l'avertissement selon lequel il n'est pas aussi performant que l'implémentation C++ n'est qu'un problÚme cosmétique.

Stéphan Kristyn
Edelweißstr. 4
81541 Munich

+49 151 5461 8086
s. [email protected]
http://meshfields.de

Le 9 juin 2015 17:38 +0200, [email protected] , a Ă©crit :

Ce n'est pas une solution, juste un hack. De la mĂȘme maniĂšre, vous pouvez simplement supprimer les sorties de la console dans ce fichier.

-
RĂ©pondez directement Ă  cet e-mail ou consultez-le sur GitHub (https://github.com/Automattic/mongoose/issues/2285#issuecomment-110406406).

@ChrisGciso, cela ne fait que balayer l'avertissement sous le tapis. Cela signifie qu'il utilisera l'analyseur JavaScript bson sans vérifier celui compilé.

@nottinhill Je n'ai malheureusement aucune expérience avec le bambou, donc je ne peux pas aider. Qu'il s'agisse d'un «problÚme cosmétique» dépend de votre cas d'utilisation - par exemple, dans un environnement CI comme le bambou, vous vous inquiétez généralement trop de gagner une microseconde ici et d'économiser quelques octets de mémoire là-bas. Dans votre environnement de production, c'est là que cela compte potentiellement, et si vous avez vraiment besoin d'un peu plus de performances, alors la configuration des dépendances node-gyp et la réinstallation sont ce que vous devez faire.

En l'Ă©tat, l'une des choses que nous espĂ©rons faire Ă  l'avenir est de combler l'Ă©cart entre l'analyseur bson compilĂ© et l'analyseur JavaScript bson. Si vous souhaitez contribuer, vous ĂȘtes plus que bienvenu sur http://github.com/mongodb/js-bson :)

@ vkarpov15 Balayer les messages "Erreur" sous le tapis s'ils n'ont pas une rĂ©solution simple et n'ont pas d'impact matĂ©riel sur les performances peut ĂȘtre mieux que de les mĂ©langer avec de vraies erreurs qui reflĂštent de vrais problĂšmes. Voir cette erreur encore et encore pendant des mois n'est pas bon Ă  moins qu'elle ne puisse ĂȘtre gĂ©rĂ©e, en particulier pour les nouvelles personnes qui souhaitent utiliser le pilote. Existe-t-il une meilleure solution qui n'implique pas une sĂ©rie complexe d'Ă©tapes pour simplement se dĂ©barrasser du message d'erreur ?

Peut-ĂȘtre devrait-il ĂȘtre Ă©tiquetĂ© « Info » au lieu de « Erreur » ?

Un point juste. Il y a le drapeau native_parser qui devrait empĂȘcher mongodb de rechercher la version compilĂ©e de js-bson.

Je suis sur Fedora 22, node v0.12.4, installé ce soir

npm config set python python2.7
=> résolu mes problÚmes, merci

J'avais ce problĂšme ici dans un conteneur Docker archlinux, et ma solution Ă©tait :

$ pacman -S gcc make nodejs npm python2
$ npm config set python python2.7
$ npm install -g node-gyp

Mangouste version 4.0.5

Concernant l' erreur Bamboo - j'ai _résolu_ le problÚme en créant une tùche npm et en définissant votre variable d'environnement comme d'habitude, puis les paramÚtres suivants :

install node-gyp

Vous verrez des plaintes concernant l'indicateur global manquant, mais dans Bamboo, au moins, nous ne préférons pas les installations globales en raison de la flexibilité de la migration.

L' erreur d'

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

Oui, ça a marché pour moi, merci.

En fait, j'ai dĂ» installer aussi gcc et make aussi, pour qu'il puisse compiler le cpp dans un binaire.

-
Frédéric Souza
Co-fondateur de RioBus - http://riob.us/ http://riob.us/
Téléphone : (+55 21) 97285-8787
Rio de Janeiro, Brésil

Em 17/06/2015, Ă (s) 05:22, Stephan Kristyn [email protected] escreveu:

Concernant l'erreur Bamboo - J'ai résolu le problÚme en créant une tùche npm et en définissant votre variable d'environnement comme d'habitude, puis les paramÚtres suivants :

installer node-gyp
Vous verrez des plaintes concernant l'indicateur global manquant, mais dans Bamboo, au moins, nous ne préférons pas les installations globales en raison de la flexibilité de la migration.

-
RĂ©pondez directement Ă  cet e-mail ou consultez-le sur GitHub https://github.com/Automattic/mongoose/issues/2285#issuecomment -112714644.

J'ai eu ce problÚme. Connect-mongo mis à jour à 0.8.2 et mongoose à la version 4.0.7, et cela a bien fonctionné.

NƓud v0.12.2, NPM 2.13.0, OSX 10.10.4

MĂȘme problĂšme avec sailsjs

Mise Ă  niveau vers mongoose >= 4.0.6 afin que bson n'utilise plus les extensions C++. Dans tous les cas, ce message n'est qu'un avertissement.

La mise à niveau vers la 4.0.6 a fonctionné pour moi, merci vkarpov15.

MĂȘme problĂšme. utilisez xUbuntu 15.04.
J'ai essayé d'installer le package de libkrb5-dev, nodejs-legacy. et mettez à niveau Node.js v4.1.0, npm 2.14.3, mangouste 4.1.7. mais ne fonctionne pas :-(

As-tu essayé une réinstallation propre ? De plus, ne vous inquiétez pas pour libkrb à moins que vous ne vous souciez de l'authentification kerberos, mongoose fonctionnera bien sans elle.

@TimePower Avez-vous essayé l'installation globale de node-gyp ?

J'obtiens l'erreur suivante lorsque j'essaie d'utiliser quoi que ce soit en rapport avec Mongoose :

{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }
js-bson: Failed to load c++ bson extension, using pure JS version

NƓud 4.1.0 et Mangouste 4.1.10.

rm -rf node_modules && npm cache clean && npm install @jackdbernier

C'est aussi un avertissement, pas une erreur.

Mise Ă  niveau vers mongoose >= 4.0.6 afin que bson n'utilise plus les extensions C++.

J'utilise Mongoose 4.1.10 et j'obtiens toujours l'erreur.

j'ai résolu de rétrograder mongodb à 2.6

rm -rf node_modules && npm cache clean && npm install
ne fonctionne pas pour moi, aprĂšs la mĂȘme erreur

MĂȘme problĂšme ici :

rm -rf node_modules && npm cache clean && npm install
ne fonctionne pas pour moi, aprĂšs la mĂȘme erreur

js-bson: Failed to load c++ bson extension, using pure JS version

Ma configuration :

  • Machine AWS Ubuntu : Ubuntu 14.04.1 LTS
  • node.js v0.12.7
  • Mangouste 4.1.12
  • MongoDB 2.6.5

Tout a commencé lorsque j'ai mis à niveau nodejs, la mise à niveau vers Mongoose 4.1.12 n'a pas aidé non plus.

Comment est-ce toujours un problĂšme ??? Dois-je mĂȘme prendre la peine de laisser d'autres informations ici... tout le monde l'a fait pour moi... Est-ce que quelqu'un va stabiliser ceci ou quoi ???

Pas une erreur, juste un avertissement. Il y a aussi suffisamment d'informations là-bas / sur ce fil sur la façon de configurer correctement node-gyp.

@vkarpov15 Merci pour la réponse. Il s'agit d'une erreur, pas d'un avertissement : l'installation de npm échoue aprÚs ce message. Pouvez-vous m'en dire plus sur la façon dont cela se rapporte à node-gyp.

npm install n'affiche pas ce message, donc j'en doute fortement.

Je doute que cela soit liĂ© Ă  node-gyp de quelque maniĂšre que ce soit. Je suis sur OS X 10.11, j'ai utilisĂ© _beaucoup_ de dĂ©pendances natives comme node-sass, mĂȘme avant qu'ils ne publient des binaires pour les nouvelles versions de Node.js et qu'ils se soient compilĂ©s correctement. Donc ma configuration est bonne. Et encore:

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

J'ai installé toutes les dépendances directement à partir de Node.js 4.

@vkarpov15 tu as raison, mon erreur. L'erreur s'est produite lors de la tentative d'exiger le module dans le nƓud, aprĂšs la mise Ă  jour avec npm. J'ai essayĂ© de le faire fonctionner pendant plusieurs heures, mais aucun des conseils donnĂ©s en ligne n'a semblĂ© m'aider, alors j'ai de nouveau rĂ©trogradĂ© et je ne l'ai plus regardĂ© depuis.

Je viens de résoudre ça.

Lorsque vous installez le module mongoose par npm, il n'a pas de module bson intégré dans son dossier. Dans le fichier node_modules/mongoose/node_modules/mongodb/node_modules/bson/ext/index.js, modifiez la ligne

bson = require('../build/Release/bson');
Ă 

bson = require('bson');

MĂȘme problĂšme sur FreeBSD.

Comment pouvons-nous créer l'extension C++ BSON ?


Voici ce que npm install dit :

> [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

MĂȘme problĂšme ici

@vkarpov15 Je confirme ce que dit @mgol . Il y a un autre problĂšme qu'une mauvaise configuration node-gyp . J'ai aussi beaucoup d'autres modules natifs construits correctement. Aucune erreur ne se produit lors de l'installation.

Il y a un problĂšme avec node v4 qui empĂȘche d'avoir le c++ bson extension , ce qui entraĂźne l'avertissement js-bson: Failed to load c++ bson extension, using pure JS version .

Voici le log complet lorsque j'installe mongoose ( [email protected] ) sur node v4

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

Par souci d'exhaustivitĂ©, j'ai installĂ© la derniĂšre version de mongoose ( [email protected] ) mais l'erreur est restĂ©e la mĂȘme :

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

Faites-moi savoir si je peux fournir des informations supplémentaires.
rgds

@antoinepairet quelle version de node exactement ? Il y a beaucoup de versions v4.

Merci pour votre réponse rapide @vkarpov15. J'apprécie vraiment ça :-).
DĂ©solĂ© de ne pas avoir mentionnĂ© la version du nƓud dans mon post prĂ©cĂ©dent. J'ai testĂ© 3 versions de nƓuds :
4.2.1 , 4.1.0 et 4.0.0 avec la procédure suivante :

  1. nvm installer 4.1.0
  2. rm -rf modules_noeuds/
  3. npm installer
  4. tester l'application et voir si l'avertissement se produit

Avoir js-bson: Failed to load c++ bson extension, using pure JS version chaque fois

J'ai effectué les tests étendus sur OSX. Sous Linux, je n'ai testé que 4.2.1 .

Faites-moi savoir si je peux fournir plus d'informations / tests.
Merci encore

PS : @AsyaHristeva Ce n'est pas une question de C++ IDE. les autres modules natifs se construisent trĂšs bien :-)

Hmm sur 4.1.1 [email protected] fonctionne bien sur mon mac, et de toute façon cette erreur ne devrait pas se produire car [email protected] utilise [email protected], qui n'utilise pas d'extension C++ pour BSON. J'obtiens cette erreur avec [email protected], mais c'est parce que les

J'obtiens la mĂȘme erreur avec 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])

Lorsque j'exécute mon application, j'obtiens :

{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }
js-bson: Failed to load c++ bson extension, using pure JS version

Je me demande s'il s'agit d'un problÚme OSX car je n'ai aucun problÚme sous Linux. Cela pourrait-il avoir quelque chose à voir avec le gcc, le compilateur Clang par défaut installé par XCode.

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 a raison, mettez à jour mongoose vers 4.4.5 pour résoudre ce problÚme

@vkarpov15 , Ai-je raison de supposer que ce problÚme est causé par l'exécution d'une version plus récente de Mongoose avec des versions plus anciennes de MongoDB - la version 2.X par exemple ?

Non, la version mongodb n'a rien à voir avec ça.

[FIXÉ]

j'ai eu aussi ce problĂšme


SystÚme d'exploitation : Windows 10
nƓud : v4.2.3
npm : 2.14.7


je viens de définir le chemin python

npm config set python python2.7

et réinstaller la mangouste

npm install mongoose


et ça a marché.

@ nityanarayan44 Cela a fonctionné pour moi

@mgol
J'utilise OSX 10.10.5, node 4.4.2, npm 2.15.0, keystone 0.3.17

Je suis allé à node_modules/keystone/package.json et j'ai supprimé mongoose des dépendances, puis

npm config set python python2.7
npm install mongoose

cela a fonctionné pour moi:

A également fonctionné pour moi la solution @ nityanarayan44

MĂȘme problĂšme. Ma version est le nƓud 2.15, plate-forme Centos

Il n'y a pas de version de Node telle que 2.15, donc je pense que vous voulez dire io.js. Et
io.js n'a pas été pris en charge par l'amont depuis longtemps, passez à Node 4
ou 6 DÈS QUE POSSIBLE.

MichaƂ GoƂębiowski

@arefm Thx, cela a fonctionné pour moi pour la mise à jour de la version 3.8.23. De plus, en résolvant un autre problÚme: la longueur n'est pas définie et ainsi de suite.

@mgol Il parlait de npm . La derniĂšre version de npm2 est la 2.15.4.

@mnpenner je crois que c'est 3.8.8

@jwerre j'ai dit npm2. Certains d'entre nous sont bloqués sur npm 2 car 3 a toute une série de problÚmes différents.

@mgol DĂ©solĂ©, la version npm est 2.15, pas le nƓud.

@mnpenner Oui, tu es un homme intelligent !

Lors de l'utilisation avec Keystone, voici ce qui a fonctionné pour moi pour surmonter cette erreur :

ajouter ce qui suit à mes package.json deps :

"mongoose": "~4.4.16",
"mongodb": "~2.1.18",
"keystone": "^0.3.19",

alors

npm install

finalement

rm -rf node_modules/keystone/node_modules/mongodb
rm -rf node_modules/keystone/node_modules/mongoose

Maintenant, je ne reçois pas l'erreur.

@aventurella J'ai touchĂ© le mĂȘme rocher quand j'essaye Keystone aujourd'hui, merci pour votre solution.

mais maintenant, nous obtenons des erreurs superflues et des erreurs manquantes, est-ce ok ?

@ tomwang1013 la mise à jour de la mangouste a résolu le problÚme, mais mon application ne se connecte pas à la base de données .....

Dans notre cas, la raison pour laquelle la version c++ bson n'a pas été trouvée était que nous étions derriÚre un proxy d'entreprise et que quelque chose dans le processus de construction BSON doit tendre la main pour récupérer les fichiers. Lorsque nous avons regardé dans node_modules/bson/builderror.log, nous avons vu une erreur comme celle-ci :

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)

Ce qui suggĂšre que le proxy pourrait ĂȘtre le problĂšme.

Désolé d'avoir réveillé les commentaires à ce sujet, mais je voulais poster ceci pour toute autre personne qui le rencontre à l'avenir car ce fil a été trÚs utile pour résoudre notre problÚme.

@aventurella merci pour ta correction, ça a marchĂ© ! Ça me fait quand mĂȘme un peu drĂŽle.

J'ai ce problÚme sur Windows 10, je ne peux pas non plus exécuter un exemple "de base"... est supposé que les fichiers d'installation devraient fournir tout le nécessaire pour exécuter quelque chose, ou au moins avoir les instructions pour le faire...
C'est putain d'Ă©nervant !!!!! :@

@GST5555 si vous souhaitez obtenir de l'aide en temps réel, n'hésitez pas à nous rejoindre dans l'une de ces communautés :
Gitter.im
Mou

Cette page vous a été utile?
0 / 5 - 0 notes