with tutorial setup react node javascript angularjs windows node.js mongodb

javascript - tutorial - node js angular 4



No se puede encontrar el código del módulo ''../build/Release/bson'']: ''MODULE_NOT_FOUND''} js-bson: no se pudo cargar la extensión c++ bson, utilizando la versión JS pura (30)

Respuesta corta

Instala la última versión de mongodb.

Un poco más de respuesta

Asegúrese de que su package.json esté utilizando la última versión de mongodb, luego elimine node_modules / mongodb y vuelva a instalar npm. Si no usó mongodb como dependencia directa, intente encontrar qué paquete está usando mongdb. Solía:

find . -type f -name package.json | xargs grep mongodb ... ./sails-mongo/package.json: "mongodb": "1.4.26", ...

Así que actualicé ./sails-mongo/package.json a:

"mongodb": "2.1.7",

Luego elimine node_modules / mongodb y vuelva a instalar npm. Parece bien ahora.

Respuesta aún más larga

No me gusta la forma actual sugerida de usar

require(''../browser_build/bson'')

Desde mirar ../browser_build/bson.js, un archivo de 4k + líneas, que también parece una implementación "no nativa". Por lo tanto, aunque no arrojará ninguna queja, todavía está "usando la versión JS pura", lo que significa un rendimiento más lento.

Mirando https://github.com/mongodb/js-bson/issues/145 y https://github.com/mongodb/js-bson/issues/165 , parece que el problema fue causado por:

antoniofruci comentó en sep 15, 2015

Me acabo de enterar de que el código de C ++ se ha eliminado hace 6 meses y ahora es una dependencia opcional: bson-ext. De hecho, si instala la última versión, no se produce ningún error.

Así que intenté eliminar todo el node_modules y aún obtuve el mismo error. Y mirando el paquete.json de node_modules / mongodb, su versión sigue siendo 1.4.26, no la última 2.1.7.

Aparentemente mi mongodb viene como una dependencia de otro paquete que instalé: sails-mongo. Modificando el package.json de sails-mongo y rehaciendo npm install finalmente resuelve el problema.

Recibo el siguiente error:

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

Aquí están los detalles de mi versión:

  • SO: Windows 7

  • MongoDB: 2.6.5

  • Nodo: 0.12.0

He intentado estas cosas antes de publicar el problema aquí.

  1. Fui a la carpeta /node-modules/mongoose/node-modules/mongodb/node-modules/bson e hice el siguiente cambio en el archivo vinculante-gyp de ''include_dirs'': [ ''<!(node -e "require(/'nan/')")'' ] a ''include_dirs'': ["<!(nodejs -p -e /"require(''path'').dirname(require.resolve(''nan''))/")"]

  2. npm install -g node-gyp este comando npm install -g node-gyp

  3. He actualizado la versión de mangosta a 3.8.21 dentro de package.json

Nada funciona. Por favor recomiende


Al crear la configuración para www.spotdekho.com en la nueva máquina con windows10 , no pude ejecutar el comando "nodemon web.js" debido al mismo error

"Error: no se puede encontrar el módulo ''../build/Release/bson''"

Lo solucionó con los siguientes pasos:

  1. Crear carpeta "Release" dentro de la ubicación "node_modules / bson / build /"
  2. Copie bson.js de "node_modules / bson / browser_build /"
  3. Pegue bson.js dentro de la carpeta "node_modules / bson / build / Release".

Esto resolverá el problema.

PD: estoy usando mangosta versión 4.8.8.

Gracias :), espero que ayude a alguien.


Al implementar Keystone JS CMS tuve el mismo error y creo que la solución más elegante es esta:

Instale npm-check-updates :

root@keystonejs:~# npm install -g npm-check-updates

Dentro de su directorio de sitio clave, donde se coloca package.json , verifique las dependencias:

debian@keystonejs:~/myproject/manalcjim$ npm-check-updates -u

Luego actualice todos los paquetes:

debian@keystonejs:~/myproject/manalcjim$ npm install

Y finalmente, si elige jade para las plantillas, tal vez necesite instalar el módulo de jade explícitamente:

debian@keystonejs:~/myproject/manalcjim$ npm install jade --save


Cuando recibía errores como este, estaba actualizando del nodo v0.10 al nodo v4.xx. Lo que tuve que hacer fue instalar una versión más nueva de gcc (creo que tenía gcc v4.4.xo algo así). Actualicé a gcc 4.7.2 y las cosas funcionaron después de eso.


Desafortunadamente, todas las respuestas anteriores son solo la mitad correctas. Tomó mucho tiempo resolver esto ...

Mongoose bson instalar a través de npm lanza advertencia y provoca el error ...

npm install -g node-gyp git clone https://github.com/mongodb/js-bson.git cd js-bson npm install node-gyp rebuild

¡Esto funciona como magia!


Ejecute este comando para desinstalar mongoose npm uninstall --save mongoose - luego npm uninstall --save mongoose instalarlo, pero esta vez npm instala automáticamente la última versión de mongoose run npm install --save mongoose Esto funcionó para mí.


El problema es que cuando instalas mangosta a través de npm, se supone que tienes Python instalado en tus ventanas e intenta construir las bibliotecas necesarias. Como no tiene Python, omite la fase de construcción con una advertencia. Pero cuando inicia su aplicación, los módulos necesarios no están allí, por lo que obtiene este error.

Para hacer las cosas bien, primero instale Python (versión 2.7) en su computadora desde: https://www.python.org/downloads/ o si ha instalado chockolatey simplemente escriba choco install python2 .

Luego, asegúrese de que su variable python esté configurada. Puede configurarlo en el símbolo del sistema como:

SET python=D:/Python27/python.exe

(Por supuesto, debe cambiar la ruta de acuerdo con su ubicación de python) Luego instale node-gyp:

npm install -g node-gyp

Ahora puede reinstalar mangosta o cualquier módulo que cause el problema:

npm install mongoose

Verá algunas líneas amarillas en lugar de las rojas esta vez, pero el error desaparecerá.


En mi caso, los bits que vienen con mangosta ( npm install mongoose ) tienen una versión funcional del paquete mongodb en su carpeta node_modules .

Los siguientes pasos me ahorraron el trabajo de solucionar el problema:

  • npm install mongoose
  • Copiar node_modules/mongoose/node_modules/mongodb a mi carpeta raíz node_modules (sobrescribiendo cualquier versión que npm install mongodb con npm install mongodb )
  • ignore el Failed to load c++ bson extension... (o cambie el código para silenciar el problema)

En nuestro caso, la razón por la que no se encontró la versión c ++ bson fue porque estábamos detrás de un proxy corporativo y algo en el proceso de compilación de BSON necesita comunicarse para buscar archivos. Cuando buscamos en node_modules / bson / builderror.log, vimos un error como este:

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)

Lo que sugirió que el proxy podría ser el problema. La configuración de las variables de entorno http_proxy y https_proxy lo resolvió.

Perdón por volver a despertar comentarios sobre esto, pero quería publicar esto para cualquier otra persona que llegue a esto en el futuro ya que este hilo fue muy útil para resolver nuestro problema.


Encuentra en el módulo npm mongodb:

.. / node_modules / mongodb / node_modules / bson / ext / index.js

Cambiar la ruta a la versión js en el bloque catch:

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

A:

bson = require(''../browser_build/bson'');

O copie el archivo en:

.. / node_modules / bson / build / Release / bson

De:

.. / node_modules / bson / browser_build / bson


Entonces, tengo el mismo problema y sucede que la URL de mongoDB especificada no existe. Entonces, para solucionar esto, debe ir a la carpeta ".. / server / config / environment" y editar en el archivo "development.js" el enlace a mongoDB.

Ejemplo:

// Development specific configuration // ================================== module.exports = { // MongoDB connection options mongo: { uri: ''mongodb://localhost/test2-dev'' }, seedDB: true };

Entonces, cambie este "uri: ''mongodb: // localhost / test2-dev''" por alguna ruta real a su base de datos mongoDB.

Me alegrará si mi publicación ayudará a alguien ...


Esto funcionó para mí. Busque en su espacio de trabajo el texto:

"../build/Release/bson"

Probablemente lo encontrará dentro de los módulos mongose ​​y monk.

Luego reemplace cada uno:

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

con:

bson = require(''bson'');

¡eso es todo!


Esto funcionó para mí:

Vaya al archivo (en su proyecto):

node_modules/mongoose/node_modules/mongodb/node_modules/bson/ext/index.js

y cambio:

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

a:

bson = require(''bson'');

Referencia: https://github.com/mongodb/js-bson/issues/118


Estoy trabajando con el sistema operativo Windows 8.1 y tuve el mismo problema. La fuente del problema fue la versión de Python. Encontré que el problema de origen revisa el archivo ... / node_modules / mongodb / node_modules / mongodb-core / node_modules / kerberos / builderror.log.

Instalé la versión correcta de Python (2.7.9 para 64 bits) y resolvió mi problema.

Nota: La versión instalada de python debe ser igual o mayor que 2.7.5 y menor que 3.0.0


He intentado bson = require(''../browser_build/bson''); pero terminas encontrando otro error

No se puede establecer la propiedad ''BSON_BINARY_SUBTYPE_DEFAULT'' de undefined

Finalmente solucioné este problema simplemente mediante la npm update , esto solucionará el módulo bson en mangosta.


Intenté npm install mongoose --msvs_version = 2012, si tienes múltiples Visual instalados, funcionó para mí


La mejor solución para mí fue actualizar de node-mongodb 1.xa 2.x.


La respuesta marcada es completamente incorrecta. Todo lo que hace es ocultar la declaración de registro de la consola y no hace nada para resolver el problema. También puede cerrar los ojos y obtendrá el mismo resultado.

El problema es causado por node-gyp y solo eso. Su propósito es compilar extensiones nativas para ciertos módulos como bson.

Si no lo hace, entonces el código recurrirá a la versión JS y le informará amablemente a través del mensaje informativo:

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

Supongo que la pregunta es realmente sobre cómo compilar la extensión nativa de C ++ en lugar de simplemente no ver el mensaje, así que abordemos eso.

Para que node-gyp funcione, su node-gyp debe estar actualizado con su nodo y compilador de C ++ (que diferirá según su sistema operativo). Tan importante como su módulo también debe estar actualizado.

Primero desinstale y reinstale node-gyp

npm un node-gyp -g;npm i node-gyp -g

Ahora necesitará desinstalar y reinstalar completamente cualquier módulo de nodo en su aplicación (que incluya también módulos instalados por requisitos) que tengan bson. Eso debería encargarse del error. Puede buscar ''Release / bson'' y encontrar a los culpables.

find node_modules/ -type ''f'' -exec grep -H ''Release/bson'' {} /;

Y luego desinstale y reinstale estos módulos.

Más fácil es rehacer toda la carpeta node_modules :

rm -rf node_modules npm cache clear npm i

Si aún experimenta problemas, entonces 1) su módulo está desactualizado - verifique el rastreador de problemas en su repositorio o 2) tiene un conflicto potencial - a veces podemos tener un nodo-gyp local, por ejemplo. Puede ejecutar node-gyp por sí mismo y verificar las versiones.


Lo único que me ayuda en Windows 7 (x64): https://.com/a/29714359/2670121

Vuelva a instalar el nodo y Python con versiones x32.
Pasé mucho tiempo con este error (Error al cargar la extensión c ++ bson) y finalmente, cuando instalé el módulo node-gyp (para compilar complementos nativos) e incluso instalé Windows SDK con Visual Studio - nodejs no reconoció el módulo ensamblado bson.node como módulo Después de reinstalar el problema se ha ido.

De nuevo, ¿qué significa este error?

En realidad, ni siquiera es un error. Todavía puedes usar mangosta. Pero en este caso, en lugar de la rápida realización nativa del módulo bson, obtienes js-realization, que es más lento. Vi muchos consejos como: "editar ruta en el interior de node_modules ...", que es totalmente inútil porque no resuelve el problema sino que apaga los mensajes de error.


Me doy cuenta de que este hilo tiene más de 1 año, pero me ayudó, aunque con un módulo diferente.

Instalé mongoose-post-findv0.0.2 y comenzó este problema. Para solucionarlo, utilicé las sugerencias y navegué a / node_modules / mongoose-post-find / node_modules / bson / ext y abrí el archivo index.js.

El archivo comienza con un bloque try try que requiere la versión correcta de bson

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(''../browser_build/bson''); } catch (err) { console.dir(err) console.error("js-bson: Failed to load c++ bson extension, using pure JS version"); bson = require(''../lib/bson/bson''); } }

Esta es la versión corregida. Lo que estaba sucediendo es que intentó cargar bson desde ../build/Release/bson, no pudo encontrarlo y cayó en la trampa. Se intentó cargar bson nuevamente desde ../build/Release/bson y, por supuesto, falló. Así que cambio la ruta en la captura para buscar en ../browser_build/bson. Esto resolvió el error.

Publico esto para completar.


Nunca debe cambiar los archivos en la carpeta de la biblioteca NODE_MODULES.

Esos archivos son el resultado del comando npm install .

Básicamente, creo que para los usuarios de Windows: la forma correcta es usar VM. Es lo que hago cuando trabajo desde casa.

Todo lo que necesita:

for CentOS: yum install gcc gcc-c++ make openssl-devel

for Debian/Ubuntu: apt-get install build-essential

y luego npm install o, si ya lo ha hecho, npm update


Pruebe npm install [email protected] y también reemplace bson = require(''../build/Release/bson''); a

bson = require(''../browser_build/bson''); en node_modules / bson / ext / index.js


Pruebe esta npm install bson y npm update


Resolví este problema instalando mogoose versión 3.8.23

npm install [email protected]


Si está utilizando Windows 8.1, es posible que desee asegurarse de que está instalando sus módulos npm con el compilador visual studio correcto.

Tengo instalado Visual Studio 2012, este comando funciona para mí. (después de eliminar node_modules dir)

npm install --msvs_version = 2012

Por alguna razón, node-gyp está intentando usar la versión incorrecta del compilador de Visual Studio. También noté que el comando "npm install" estaba imprimiendo advertencias sobre las dependencias de no-gyp al instalar los módulos mongodb y mongoose.

Después de usar la versión correcta de msvs, las advertencias de instalación de npm desaparecieron, así como la advertencia de la consola al ejecutar mi aplicación nodejs.

También puede asegurarse de tener instalada la versión correcta de Python 2.7.X y no Python 3.0.X.

También deberá asegurarse de que Python esté en su ruta de env.


También tuve el mismo problema con bson.

probando una nueva versión de mangosta

npm install [email protected]

resuelto el problema.

Massimo


Tuve el mismo problema después de la versión de actualización de ubuntu a 16.04. Resolví de esta manera, espero que ayude.

$rm -rf node_modules $npm --save install bson $npm --save install mongoose $npm install


Tuve este problema hoy (19 de febrero de 2016) y lo resolví simplemente instalando la última versión de Mongoose. Intenta poner esto en tu paquete.json:

"mongoose": "~4.4"

Espero que ayude. ¡Lo resolvió por mí!


encontrar en el módulo npm mongodb ..node_modules / mongodb / node_modules / bson / ext / index.js

y cambiar la ruta a la versión js en el bloque catch

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

a bson = require(''../browser_build/bson'');

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(''../browser_build/bson''); } } catch(err) { // Attempt to load the release bson version try { bson = require(''../browser_build/bson''); } catch (err) { console.dir(err) console.error("js-bson: Failed to load c++ bson extension, using pure JS version"); bson = require(''../lib/bson/bson''); } }


Primero copie el código browser_build folder

segundo crea un nuevo archivo bson.js y pega el código

tercero, guarde el nuevo archivo cerca de index.js .