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í.
Fui a la
\node-modules\mongoose\node-modules\mongodb\node-modules\bson
carpeta 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'))\")"]
Ejecutó este comando
npm install -g node-gyp
He actualizado la versión de mangosta a 3.8.21 dentro
package.json
Nada funciona. Por favor recomiende
Respuestas:
Encuentra en el módulo npm mongodb:
Cambiar la ruta a la versión js en el bloque catch:
A:
O copie el archivo en:
De:
fuente
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:
Espero que ayude. ¡Lo resolvió por mí!
fuente
El problema es que cuando instala mangosta a través de npm, se supone que tiene instalado Python en sus 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:
(Por supuesto, debe cambiar la ruta de acuerdo con su ubicación de python) Luego instale node-gyp:
Ahora puede reinstalar mangosta o cualquier módulo que esté causando el problema:
Verá algunas líneas amarillas en lugar de las rojas esta vez, pero el error desaparecerá.
fuente
--msvs-version=2012
o2013e
dependiendo de lo que haya instalado. Por ejemplonpm install mongoose --msvs-version=2012
Resolví este problema instalando la versión mogoose
3.8.23
fuente
Esto funcionó para mí. Busque en su espacio de trabajo el texto:
Probablemente lo encontrará dentro de los módulos mongose y monk.
Luego reemplace cada uno:
con:
¡eso es todo!
fuente
Probar
npm install [email protected]
y también reemplazarbson = require('../build/Release/bson');
abson = require('../browser_build/bson');
en node_modules / bson / ext / index.jsfuente
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
fuente
node_modules
directorio en el control de fuente?Respuesta corta
Instale 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:
Así que actualicé ./sails-mongo/package.json a:
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
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:
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.
fuente
Al implementar Keystone JS CMS tuve el mismo error y creo que la solución más elegante es esta:
Instalar
npm-check-updates
:Dentro de su directorio de sitio clave, donde
package.json
se ubica, verifique las dependencias:Luego actualice todos los paquetes:
Y, por último, si elige
jade
plantillas, tal vez necesite instalar eljade
módulo explícitamente:fuente
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 , el código recurrirá a la versión JS y se lo informará amablemente a través del mensaje informativo:
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 el nodo-gyp funcione, su nodo-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
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.
Y luego desinstale y reinstale estos módulos.
Más fácil es rehacer toda la
node_modules
carpeta: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 ejecutarse
node-gyp
solo y verificar versiones.fuente
Al crear la configuración
www.spotdekho.com
en unawindows10
máquina nueva , no pude ejecutar el comando"nodemon web.js"
debido al mismo errorLo solucionó con los siguientes pasos:
Esto resolverá el problema.
PD: estoy usando mangosta versión 4.8.8.
Gracias :), espero que ayude a alguien.
fuente
En mi caso, los bits que vienen con mangosta (
npm install mongoose
) tienen una versión funcional delmongodb
paquete en sunode_modules
carpeta.Los siguientes pasos me ahorraron el trabajo de solucionar el problema:
npm install mongoose
node_modules\mongoose\node_modules\mongodb
a minode_modules
carpeta raíz (sobrescribir cualquier versión que venga connpm install mongodb
)Failed to load c++ bson extension...
error (o cambie el código para guardar silencio sobre el problema)fuente
Cuando recibía errores como este, estaba actualizando del nodo v0.10 al nodo v4.xx. Lo que tenía que hacer era 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.
fuente
También tuve el mismo problema con bson.
probando una nueva versión de mangosta
resuelto el problema.
Massimo
fuente
Ejecute este comando para desinstalar mongoose
npm uninstall --save mongoose
; a continuación, vuelva a instalarlo, pero esta veznpm
instala automáticamente la última versión de mongoose runnpm install --save mongoose
Esto funcionó para mí.fuente
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 ...
¡Esto funciona como magia!
fuente
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 el msvs_version correcto, las advertencias de instalación de npm desaparecieron, así como la advertencia de la consola al ejecutar mi aplicación nodejs.
Es posible que también desee 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 env.
fuente
npm install --msvs_version=2012
Lo único que me ayuda en Windows 7 (x64): https://stackoverflow.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.
fuente
Prueba esto
npm install bson
ynpm update
fuente
Nunca debe cambiar los archivos en la carpeta de la biblioteca NODE_MODULES.
Esos archivos son el resultado de
npm install
comando.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 has hecho,npm update
fuente
La mejor solución para mí fue actualizar de node-mongodb 1.xa 2.x.
fuente
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
Esta es la versión corregida. Lo que estaba sucediendo es que trató de 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.
fuente
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.
fuente
En nuestro caso, la razón por la que no se encontró la versión b ++ de c ++ 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.
fuente
Intenté npm install mongoose --msvs_version = 2012, si tienes múltiples Visual instalados, funcionó para mí
fuente
Primera copia del
bson.js
código debrowser_build folder
segundo crea un nuevo archivo
bson.js
y pega el códigotercero, guarde el nuevo archivo cerca de adentro
index.js
.fuente
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
fuente
Lo he intentado
bson = require('../browser_build/bson');
pero acabo encontrando otro errorFinalmente solucioné este problema simplemente por
npm update
, esto solucionará el módulo bson en mangosta.fuente
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:
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 ...
fuente
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
a
bson = require('../browser_build/bson');
fuente