J'obtiens l'erreur ci-dessous:
{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }
js-bson: Failed to load c++ bson extension, using pure JS version
Voici les détails de ma version:
Système d'exploitation: Windows 7
MongoDB: 2.6.5
Nœud: 0.12.0
J'ai essayé ces choses avant de publier le problème ici.
Je suis allé dans le
\node-modules\mongoose\node-modules\mongodb\node-modules\bson
dossier et j'ai modifié ci-dessous le fichier binding-gyp de'include_dirs': [ '<!(node -e "require(\'nan\')")' ]
à'include_dirs': ["<!(nodejs -p -e \"require('path').dirname(require.resolve('nan'))\")"]
Ran cette commande
npm install -g node-gyp
J'ai mis à jour la version mangouste à 3.8.21 à l'intérieur
package.json
Rien ne fonctionne. Veuillez suggérer
Réponses:
Trouvez dans le module npm mongodb:
Changez le chemin vers la version js dans le bloc catch:
À:
Ou copiez le fichier dans:
De:
la source
J'ai eu ce problème aujourd'hui (19 février 2016) et je l'ai résolu simplement en installant la dernière version de Mongoose. Essayez de mettre ceci dans votre package.json:
J'espère que cela pourra aider. Résolu pour moi!
la source
Le problème est que lorsque vous installez mangouste via npm, cela suppose que python est installé sur vos fenêtres et tente de créer les bibliothèques requises. Puisque vous n'avez pas de python, il saute la phase de construction avec un avertissement. Mais lorsque vous démarrez votre application, les modules requis ne sont pas là, vous obtenez cette erreur.
Afin de bien faire les choses, installez d'abord python (version 2.7) sur votre ordinateur à partir de: https://www.python.org/downloads/ ou si vous avez installé chockolatey, tapez simplement
choco install python2
.Assurez-vous ensuite que votre variable python est définie. Vous pouvez le définir sur l'invite de commande comme:
(Bien sûr, vous devriez changer le chemin en fonction de votre emplacement de python) Puis installez node-gyp:
Vous pouvez maintenant réinstaller la mangouste ou tout autre module à l'origine du problème:
Vous verrez des lignes jaunes au lieu de rouges cette fois, mais l'erreur aura disparu.
la source
--msvs-version=2012
ou2013e
selon ce que vous avez installé. par exemplenpm install mongoose --msvs-version=2012
J'ai résolu ce problème en installant la version mogoose
3.8.23
la source
Cela a fonctionné pour moi. Recherchez le texte dans votre espace de travail:
Vous le trouverez probablement dans les modules mangose et moine.
Puis remplacez chacun:
avec:
c'est tout!
la source
Essayez
npm install [email protected]
et remplacez égalementbson = require('../build/Release/bson');
parbson = require('../browser_build/bson');
dans node_modules / bson / ext / index.jsla source
Cela a fonctionné pour moi:
Accédez au fichier (dans votre projet):
node_modules/mongoose/node_modules/mongodb/node_modules/bson/ext/index.js
et changer:
bson = require('../build/Release/bson');
à:
bson = require('bson');
Référence: https://github.com/mongodb/js-bson/issues/118
la source
node_modules
répertoire dans le contrôle de code source?Réponse courte
Installez la dernière version de mongodb.
Une réponse un peu plus longue
Assurez-vous que votre package.json utilise la dernière version de mongodb, puis supprimez node_modules / mongodb et refaites l'installation de npm. Si vous n'avez pas utilisé mongodb comme dépendance directe, essayez de trouver quel package utilise mongdb. J'ai utilisé:
J'ai donc mis à jour ./sails-mongo/package.json pour:
Supprimez ensuite node_modules / mongodb et refaites l'installation de npm. Ça va bien maintenant.
Réponse encore plus longue
Je n'aime pas la manière actuelle d'utilisation suggérée
Depuis la recherche de ../browser_build/bson.js, un fichier de 4k + lignes, qui semble aussi une implémentation "non native". Donc, même s'il ne crachera aucune plainte, il "utilise toujours la version JS pure", ce qui signifie des performances plus lentes.
En regardant https://github.com/mongodb/js-bson/issues/145 et https://github.com/mongodb/js-bson/issues/165 , il semble que le problème ait été causé par:
J'ai donc essayé de supprimer l'ensemble des node_modules et j'ai toujours la même erreur. Et en regardant package.json de node_modules / mongodb, sa version est toujours 1.4.26, pas la dernière 2.1.7.
Apparemment, mon mongodb est une dépendance d'un autre paquet que j'ai installé: sails-mongo. La modification du package.json de sails-mongo et la refonte de npm install résolvent enfin le problème.
la source
Déploiement du CMS Keystone JS J'ai eu la même erreur et je pense que la solution la plus élégante est la suivante:
Installer
npm-check-updates
:Dans le répertoire de votre site Keystone, où
package.json
est placé, vérifiez les dépendances:Ensuite, mettez à jour tous les packages:
Et enfin, si vous avez choisi
jade
des modèles, vous aurez peut-être besoin d'unjade
module d' installation explicite:la source
La réponse marquée est complètement fausse. Tout ce que cela fait, c'est masquer l'instruction du journal de la console et ne rien faire pour résoudre le problème. Vous pouvez également fermer les yeux et cela obtiendra le même résultat.
Le problème est causé par node-gyp et seulement cela. Son but est de compiler des extensions natives pour certains modules comme bson.
Si elle ne parvient pas à le faire alors le code fallback à la version JS et de bien vouloir vous le dire par le message d' information:
Je suppose que la question est vraiment de savoir comment compiler l'extension C ++ native plutôt que de ne pas voir le message, alors abordons cela.
Pour que node-gyp fonctionne, votre node-gyp doit être à jour avec votre nœud et votre compilateur C ++ (qui différeront en fonction de votre système d'exploitation). Tout aussi important, votre module doit également être à jour.
Commencez par désinstaller et réinstaller node-gyp
Vous devrez maintenant désinstaller et réinstaller complètement tout module de nœud dans votre application (qui comprend également les modules installés par les exigences) qui ont bson. Cela devrait régler l'erreur. Vous pouvez rechercher «Release / bson» et trouver les coupables.
Ensuite, désinstallez et réinstallez ces modules.
Le plus simple est de simplement refaire le
node_modules
dossier entier :Si vous rencontrez toujours des problèmes, soit 1) votre module est obsolète - vérifiez le suivi des problèmes dans leur dépôt ou 2) vous avez un conflit potentiel - parfois, nous pouvons avoir un node-gyp local par exemple. Vous pouvez exécuter
node-gyp
par lui-même et vérifier les versions.la source
Lors de la création de la configuration pour une
www.spotdekho.com
nouvellewindows10
machine, je n'ai pas pu exécuter la commande en"nodemon web.js"
raison de la même erreurJe l'ai réparé par les étapes ci-dessous:
Cela résoudra le problème.
PS: J'utilise la version 4.8.8 de mangouste.
Merci :), j'espère que cela aide quelqu'un.
la source
Dans mon cas, les bits fournis avec mongoose (
npm install mongoose
) ont une version de travail dumongodb
package dans sonnode_modules
dossier.Les étapes suivantes m'ont sauvé le travail de résolution du problème:
npm install mongoose
node_modules\mongoose\node_modules\mongodb
dans monnode_modules
dossier racine (en écrasant toute version fournie avecnpm install mongodb
)Failed to load c++ bson extension...
erreur (ou modifiez le code pour rester silencieux sur le problème)la source
Lorsque j'obtenais des erreurs comme celle-ci, je passais du nœud v0.10 au nœud v4.xx. Ce que je devais faire était d'installer une version plus récente de gcc (je pense que j'avais gcc v4.4.x ou quelque chose du genre). J'ai mis à jour vers gcc 4.7.2 et les choses ont fonctionné par la suite.
la source
J'ai aussi eu le même problème avec bson.
essayer une version plus récente de la mangouste
résolu le problème.
Massimo.
la source
Exécutez cette commande pour désinstaller mangouste
npm uninstall --save mongoose
- puis réinstallez-la, mais cette foisnpm
installe automatiquement la dernière version de mangouste runnpm install --save mongoose
Cela a fonctionné pour moi.la source
Malheureusement, toutes les réponses ci-dessus ne sont qu'à 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
Si vous utilisez Windows 8.1, vous voudrez peut-être vous assurer que vous installez vos modules npm avec le bon compilateur Visual Studio.
J'ai installé Visual Studio 2012, cette commande fonctionne pour moi. (après suppression du répertoire node_modules)
npm install --msvs_version = 2012
Pour une raison quelconque, node-gyp essaie d'utiliser la version incorrecte du compilateur Visual Studio. J'ai également remarqué que la commande "npm install" imprimait un avertissement concernant les dépendances not node-gyp lors de l'installation des modules mongodb et mongoose.
Après avoir utilisé la bonne version msvs_version, les avertissements d'installation de npm ont disparu ainsi que l'avertissement de la console lors de l'exécution de mon application nodejs.
Vous voudrez peut-être également vous assurer que vous avez la bonne version de Python 2.7.X installée et non Python 3.0.X.
Vous devrez également vous assurer que python est dans votre chemin d'environnement.
la source
npm install --msvs_version=2012
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 (Échec du chargement de l'extension c ++ bson) et enfin, lorsque j'ai installé le module
node-gyp
(pour construire des addons natifs) et même installé le SDK Windows avec Visual Studio - nodejs n'a pas reconnu le module assemblé bson.node comme 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 module bson, vous avez la réalisation js, qui est plus lente. 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
Essayez ceci
npm install bson
etnpm update
la source
Vous ne devez jamais modifier les fichiers dans le dossier de la bibliothèque NODE_MODULES.
Ces fichiers sont le résultat de
npm install
commande.Fondamentalement, je pense que pour les utilisateurs de Windows, la bonne façon est d'utiliser VM. C'est ce que je fais quand je travaille à domicile.
Tout ce dont tu as besoin:
for CentOS: yum install gcc gcc-c++ make openssl-devel
for Debian/Ubuntu: apt-get install build-essential
et puis
npm install
ou, si vous l'avez déjà fait -npm update
la source
La meilleure solution pour moi était de passer de node-mongodb 1.x à 2.x.
la source
Je me rends compte que ce fil a 1 an et plus, mais il m'a aidé, bien qu'avec un module différent.
J'ai installé mongoose-post-findv0.0.2 et ce problème a commencé. Pour résoudre ce problème, j'ai utilisé les suggestions et accédé à \ node_modules \ mongoose-post-find \ node_modules \ bson \ ext et ouvert le fichier index.js.
Le fichier commence par un bloc try catch essayant d'exiger la version correcte de bson
c'est la version corrigée. Ce qui se passait, c'est qu'il a essayé de charger bson à partir de ../build/Release/bson, n'a pas pu le trouver et est tombé dans le piège. On a essayé de charger à nouveau bson à partir de ../build/Release/bson et a bien sûr échoué. Je change donc le chemin dans la capture pour regarder dans ../browser_build/bson. Cela a résolu l'erreur.
Je poste ceci par souci d'exhaustivité.
la source
J'ai eu le même problème après la mise à niveau de la version d'ubuntu vers 16.04. J'ai résolu de cette façon, j'espère que cela aide.
la source
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 atteindre 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érait que le proxy pourrait être le problème. La définition des variables d'environnement http_proxy et https_proxy a résolu le problème.
Désolé d'avoir réveillé les commentaires à ce sujet, mais je voulais le publier pour toute autre personne qui le rencontrera à l'avenir, car ce fil de discussion a été très utile pour résoudre notre problème.
la source
J'ai essayé npm install mongoose --msvs_version = 2012, si vous avez plusieurs Visual installés, cela a fonctionné pour moi
la source
Première copie du
bson.js
code depuisbrowser_build folder
deuxième créer un nouveau fichier
bson.js
et coller le codetroisième enregistrez le nouveau fichier à proximité de dans
index.js
.la source
Je travaille avec OS Windows 8.1 et j'ai eu le même problème. La source du problème était la version de Python. J'ai trouvé le problème d'origine en examinant le fichier ... \ node_modules \ mongodb \ node_modules \ mongodb-core \ node_modules \ kerberos \ builderror.log.
J'ai installé la bonne version de Python (2.7.9 pour 64 bits) et cela a résolu mon problème.
Remarque: la version installée de python doit être égale ou supérieure à 2.7.5 et inférieure à 3.0.0
la source
J'ai essayé
bson = require('../browser_build/bson');
mais j'ai fini par rencontrer une autre erreurEnfin, j'ai résolu ce problème simplement en
npm update
corrigeant le module bson dans mangouste.la source
Donc, j'ai le même problème et il se produit que l'URL mongoDB spécifiée n'existe pas. Donc, pour résoudre ce problème, vous devez aller dans le dossier ".. \ server \ config \ environment" et éditer dans le fichier "development.js" le lien vers mongoDB.
Exemple:
Donc, changez cet "uri: 'mongodb: // localhost / test2-dev'" en un chemin réel vers votre base de données mongoDB.
Je serai heureux si mon message aidera quelqu'un ...
la source
trouver dans le module npm mongodb ..node_modules \ mongodb \ node_modules \ bson \ ext \ index.js
et changez le chemin vers la version js dans le bloc catch
à
bson = require('../browser_build/bson');
la source