Un noob total noob ici. J'ai essayé de configurer un exemple d'application de nœud, mais l'erreur suivante continue à apparaître à chaque fois que j'essaye de courir:
application de nœud
Failed to load c++ bson extension, using pure JS version
events.js:72
throw er; // Unhandled 'error' event
^
Error: failed to connect to [#$%67890 :27017]
at null.<anonymous> (/home/thejazeto/code/nodejs/authen/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/server.js:553:74)
at EventEmitter.emit (events.js:106:17)
at null.<anonymous> (/home/thejazeto/code/nodejs/authen/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:140:15)
at EventEmitter.emit (events.js:98:17)
at Socket.<anonymous> (/home/thejazeto/code/nodejs/authen/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection.js:512:10)
at Socket.EventEmitter.emit (events.js:95:17)
at net.js:830:16
at process._tickCallback (node.js:415:13)
failed to connect to
, donc je pense que cebson
message peut être sans rapport et sans importance. Êtes-vous sûr que vos paramètres de connexion Mongo sont corrects?Réponses:
Je suppose que vous n'aviez pas les outils de mise à disposition lorsque vous avez installé votre bibliothèque mongodb. Je vous suggère de faire
xcode-select --install
(sur un mac) ousudo apt-get install gcc make build-essential
(sur ubuntu)et courir
OU juste une mise à jour de npm basée sur le commentaire @tobias (après l'installation de build-essential)
la source
mongoskin
module.sudo apt-get install gcc make build-essential
astuce est l'un des meilleurs conseils de développement Node.js + Ubuntu que j'ai jamais vus. C'est un changement absolu si vous êtes habitué au développement d'applications Web et au développement avec Node.js sur Ubuntu.gcc
etmake
avecbuild-essential
? Ce dernier dépend des deux autres, ils seront donc installés de toute façon ( packages.ubuntu.com/trusty/build-essential ). Fairesudo apt-get install build-essential
devrait suffire.Je viens de résoudre cela.
Lorsque vous installez le module mangouste 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à
puis installez le module bson à l'aide de npm.
la source
J'ai trié le problème de l'obtention du "Impossible de charger l'extension bson c ++" sur raspbian (debian pour framboise) par:
puis
la source
npm update
, sans même installer rien d'autre.Je n'ai pas pu résoudre ça
jusqu'à maintenant. Tout d'abord, vous devez avoir des packages système mentionnés par Pradeep Mahdevu. Ce sont:
ou
Ensuite, j'ai installé node-gyp
comme l'a dit datadracer, mais la mise à jour de npm également suggérée par lui est risquée. Il met à jour tous les modules, ce qui peut être dangereux (parfois des changements d'API entre les versions).
Je suggère d'aller dans le répertoire node_modules / mongodb / node_modules / bson et à partir de là, utilisez
Cela a résolu le problème pour moi.
la source
apt-get install python
), puis à partir denode_modules/mongoose/node_modules/mongodb/node_modules/bson/
runmake
. Cela a crééRelease/bson.node
.Un problème courant est que node-gyp nécessite Python 2.x et si votre système
python
pointe vers 3.x, la compilation échouerabson
, sans avertissement. Vous pouvez résoudre ce problème en définissant unepython
clé globale dans votre configuration npm qui pointe vers l'exécutable 2.x sur votre système. Par exemple, sur Arch Linux:la source
Sur WIN 8.1
Il semble que j'ai utilisé une mauvaise version de mangouste dans mon
package.json
fichier.J'ai supprimé la ligne
"mongoose" : "^3.8.15"
depackage.json
.CLI:
Maintenant , il est dit
"mongoose": "^4.0.6"
danspackage.json
et l'erreur que j'avais est parti.la source
J'utilise Ubuntu 14.04 et pour le réparer pour moi, j'ai dû créer un lien symbolique pour que node pointe vers nodejs comme décrit ici:
nodejs vs node sur ubuntu 12.04
Une fois que j'ai fait cela, j'ai relancé ces commandes:
la source
Donc dans mon cas, j'ai d'abord essayé de vérifier sous ce répertoire / node_modules / mongoose / node_modules / , juste pour confirmer que j'ai le module bson . J'ai compris que je ne l'avais pas en premier lieu, puis je viens de courir
puis
Tout a été trié, essayé et testé sous Ubuntu.
la source
make
dans/devel/node_modules/bson/
npm install bson
je voulais juste dire que j'avais aussi l'erreur
Mais avec aucune des autres erreurs. J'ai tout essayé et il s'est avéré que les pilotes mongodb que je spécifiais dans le fichier package.json étaient incompatibles avec ma version de MongoDB. Je l'ai changé pour ma dernière version qui était (1.4.34) et cela a fonctionné !!!
la source
sudo npm rebuild
était ce qui l'a arrangé pour moi.la source
J'ai finalement corrigé cette erreur en mettant à jour ma version de dépendance mongodb à ~ 2.0.36 dans
package.json
.la source
Malheureusement, toutes les réponses ci-dessus sont à moitié exactes. Il a fallu beaucoup de temps pour comprendre cela.
Mongoose bson install via npm jette un avertissement et provoque l'erreur ...
Cela fonctionne comme par magie !!
la source
$ node gyp rebuild module.js:341 throw err; ^ Error: Cannot find module '/private/tmp/js-bson/gyp' at Function.Module._resolveFilename (module.js:339:15) at Function.Module._load (module.js:290:25) at Function.Module.runMain (module.js:447:10) at startup (node.js:140:18) at node.js:1001:3
Pour moi, il suffit d'exécuter ces commandes dans mon répertoire api:
la source
Je viens de courir:
et
et tout devient ok.
la source
Le message d'extension bson n'est qu'un avertissement , je le reçois tout le temps dans mon application nodejs.
Choses à vérifier:
la source
J'ai résolu ce problème sur CentOS en
la source
Je l'ai corrigé en changeant la ligne 10 de:
de:
à:
la source
J'ai également eu ce problème et cela a empêché mes sessions de fonctionner. Mais pas pour casser non plus ...
J'ai utilisé une connexion mangouste.
J'avais ceci:
Très simple. Mais la req.session restait toujours vide.
A fait le tour. Attention, vous n'avez pas de «mongodb» dans votre package.json! Juste Mongoose et connect-mongo.
la source
Voici comment j'ai résolu le problème sur Ubuntu:
ln -s /usr/bin/nodejs /usr/bin/node
npm install node-gyp
cd node_modules/mongodb/node_modules/bson
node-gyp rebuild
Inspiré de la réponse @mbochynski, mais j'ai d'abord dû créer un lien symbolique, sinon la reconstruction a échoué.
la source
npm intall
J'avais le même problème essayé tant d'options, mais dans le dernier dans mon dossier d'application moyen a fonctionné.la source
J'ai eu ce problème car j'incluais le dossier node_modules dans mon référentiel Git. Lorsque j'ai reconstruit les node_modules sur l'autre système, cela a fonctionné. L'un d'eux exécutait Linux, l'autre OS X. Peut-être qu'ils avaient également des architectures de processeur différentes.
la source
J'ai eu le même problème sur mon instance EC2. Je pense que la cause initiale était parce que j'avais une instance de Node en cours d'exécution lorsque j'ai installé Mongo. J'ai arrêté le service Node puis j'ai exécuté
à l'intérieur du dossier de niveau supérieur de mon projet de nœud. Cela a résolu le problème et tout était comme neuf
la source
J'essayais d'exécuter le nœud sur le dossier partagé de la machine virtuelle (vagrant). C'était un problème. Ma machine hôte est Windows, un nœud installé sur Windows et a fonctionné comme un charme. Donc, si vous utilisez une machine virtuelle, essayez simplement d'exécuter le serveur de nœuds sur la machine hôte.
la source
J'ai juste eu le même problème et littéralement rien n'a fonctionné pour moi. L'erreur était
kerberos
à l'origine du problème et c'était l'une desmongoose
dépendances. Depuis que je suis sur Ubuntu, j'ai pensé qu'il pourrait y avoir des problèmes d'autorisation quelque part entre les packages installés globalement -/usr/lib/node_modules
viasudo
, et ceux qui se trouvent sur l'espace utilisateur.J'ai installé dans le
mongoose
monde entier - avecsudo
bien sûr, et tout a commencé à fonctionner comme prévu.PS Le
kerberos
paquet est maintenant également installé globalement à côté demongoose
, mais je ne me souviens pas si je l'ai fait délibérément - pendant que j'essayais de résoudre le problème, ou s'il était là depuis le début.la source
Je travaille sur Docker avec centOS 7 et j'ai rencontré le même problème.
après avoir regardé autour de vous et fait plusieurs essais, j'ai résolu ce problème en installant mongodb et mongodb-server
Je ne pense pas que ce soit la meilleure façon de produire le contenant minimal. mais je peux limiter la portée dans les packages suivants
la source
Pour Windows 7.1, ces instructions m'ont aidé à réparer mon environnement de build:
https://github.com/mongodb/js-bson/issues/58#issuecomment-68217275
http://christiankvalheim.com/post/diagnose_installation_problems/
la source
J'ai pu résoudre le problème en désinstallant et en réinstallant le paquet monk. L'installation initiale avait apparemment une dépendance mongodb / bson corrompue.
la source
Followint @ user1548357 J'ai décidé de changer le fichier du module lui-même. Afin d'éviter les problèmes signalés par les commentaires valides ci-dessous, j'ai inclus mes modifications dans un script de post-installation afin que je puisse le définir et l'oublier et être assuré qu'il fonctionnera lorsque mes modules seront installés.
et le script est:
la source
éliminez facilement le problème en ajoutant simplement cette ligne à la fois essayez et attrapez le chemin du bloc:
node_modules/mongoose/node_modules/mongodb/node_modules/bson/ext/index.js
C'est tout!!!
la source
La seule chose qui m'aide sur Windows 7 (x64): https://stackoverflow.com/a/29714359/2670121
Réinstallez le nœud et python avec les versions x32.
J'ai passé beaucoup de temps avec cette erreur:
et enfin, lorsque j'ai installé le module
node-gyp
(pour créer des addons natifs) et même installé le SDK Windows avec Visual Studio - nodejs n'a pas reconnu le module assemblébson.node
comme un module. Après la réinstallation, le problème a disparu.Encore une fois, que signifie cette erreur?
En fait, ce n'est même pas une erreur. Vous pouvez toujours utiliser la mangouste. Mais dans ce cas, au lieu d'une réalisation native rapide du
bson
module, vous obtenezjs-realization
, ce qui est plus lent.J'ai vu de nombreux conseils comme: "modifier le chemin au fond de node_modules ..." - ce qui est totalement inutile, car cela ne résout pas le problème, mais vient de désactiver les messages d'erreur.
la source