Un nodo novato total aquí. He estado tratando de configurar una aplicación de nodo de muestra, pero el siguiente error sigue apareciendo cada vez que intento ejecutar:
aplicación de nodo
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
, así que creo que esebson
mensaje puede no estar relacionado y no importar. ¿Estás seguro de que la configuración de conexión de Mongo es correcta?Respuestas:
Supongo que no tenía las herramientas de creación disponibles cuando instaló su biblioteca mongodb. Te sugiero que hagas
xcode-select --install
(en una mac) osudo apt-get install gcc make build-essential
(en ubuntu)y correr
O simplemente actualización npm basada en el comentario de @tobias (después de instalar build-essential)
fuente
mongoskin
módulo.sudo apt-get install gcc make build-essential
consejo es uno de los mejores consejos de desarrollo de Node.js + Ubuntu que he visto. Es un cambio de juego absoluto si estás acostumbrado a desarrollar aplicaciones web y solo desarrollas con Node.js en Ubuntu.gcc
ymake
junto conbuild-essential
? Este último depende de los otros dos, por lo que se instalarán de todos modos ( packages.ubuntu.com/trusty/build-essential ). Hacersudo apt-get install build-essential
debería ser suficiente.Acabo de resolver eso.
Cuando instala el módulo mangosta por npm, no tiene un módulo bson integrado en su carpeta. En el archivo
node_modules/mongoose/node_modules/mongodb/node_modules/bson/ext/index.js
, cambie la líneaa
y luego instale el módulo bson usando npm.
fuente
He ordenado el problema de obtener "No se pudo cargar la extensión b ++ de c ++" en raspbian (debian para raspberry) por:
y entonces
fuente
npm update
, sin siquiera instalar nada más.No pude resolver esto
hasta ahora. En primer lugar, debe tener los paquetes del sistema mencionados por Pradeep Mahdevu. Esos son:
o
Luego instalé node-gyp
como dijo datadracer, pero la actualización de npm también sugerida por él es arriesgada. Actualiza todos los módulos, lo que puede ser peligroso (a veces, cambios de API entre versiones).
Sugiero ir al directorio node_modules / mongodb / node_modules / bson y desde allí usar
Eso resolvió el problema para mí.
fuente
apt-get install python
) y luegonode_modules/mongoose/node_modules/mongodb/node_modules/bson/
ejecutarlomake
. Esta creadoRelease/bson.node
.Un problema común es que node-gyp requiere Python 2.xy si su sistema
python
apunta a 3.x, no se compilarábson
, sin previo aviso. Puede solucionar esto configurando unapython
clave global en su configuración de npm que apunte al ejecutable 2.x en su sistema. Por ejemplo, en Arch Linux:fuente
En WIN 8.1
Parece que usé una versión incorrecta de mangosta en mi
package.json
archivo.Quité la línea
"mongoose" : "^3.8.15"
depackage.json
.CLI:
Ahora se dice
"mongoose": "^4.0.6"
enpackage.json
y el error que tuve se va.fuente
Estoy ejecutando Ubuntu 14.04 y para solucionarlo tuve que crear un enlace simbólico para que el nodo apunte a nodejs como se describe aquí:
nodejs vs node en ubuntu 12.04
Una vez que hice eso volví a ejecutar estos comandos:
fuente
Entonces, en mi caso, primero intenté verificar bajo este directorio / node_modules / mongoose / node_modules / , solo para confirmar que tengo el módulo bson . Me di cuenta de que no lo tenía en primer lugar, luego simplemente corrí
y entonces
Todos fueron ordenados, probados y probados en Ubuntu.
fuente
make
en/devel/node_modules/bson/
npm install bson
solo quería decir que también tuve el error
Pero sin ninguno de los otros errores. Intenté todo y resultó que los controladores mongodb que estaba especificando en el archivo package.json eran incompatibles con mi versión de MongoDB. ¡Lo cambié a mi última versión que era (1.4.34) y funcionó!
fuente
sudo npm rebuild
fue lo que me arregló.fuente
Finalmente corregí este error actualizando mi versión de dependencia mongodb a ~ 2.0.36 en
package.json
.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
$ 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
Para mí solo se necesita ejecutar estos comandos en mi directorio api:
fuente
Acabo de correr:
y
y todo se vuelve bien
fuente
El mensaje de extensión bson es solo una advertencia , lo recibo todo el tiempo en mi aplicación nodejs.
Cosas para verificar:
fuente
Arregle este problema en CentOS por
fuente
Lo arreglé cambiando la línea 10 de:
de:
a:
fuente
También tuve este problema y causó que mis sesiones no funcionaran. Pero tampoco para romper ...
Usé una conexión de mangosta.
Tuve esto:
Muy sencillo Pero la sesión solicitada permaneció siempre vacía.
Hizo el truco. ¡Cuidado, no tienes un 'mongodb' en tu paquete.json! Solo Mongoose y connect-mongo.
fuente
Así es como solucioné el problema en Ubuntu:
ln -s /usr/bin/nodejs /usr/bin/node
npm install node-gyp
cd node_modules/mongodb/node_modules/bson
node-gyp rebuild
Inspirado por la respuesta de @mbochynski, pero primero tuve que crear un enlace simbólico; de lo contrario, la reconstrucción falló.
fuente
Estaba teniendo los mismos problemas que probé tantas opciones, pero en el último
npm intall
en mi carpeta de aplicaciones promedio funcionó.fuente
Tuve este problema porque estaba incluyendo la carpeta node_modules en mi repositorio de Git. Cuando reconstruí los node_modules en el otro sistema, funcionó. Uno de ellos estaba ejecutando Linux, el otro OS X. Quizás también tenían diferentes arquitecturas de procesador.
fuente
Tuve el mismo problema en mi instancia EC2. Creo que la causa inicial fue porque tenía una instancia de Node ejecutándose cuando instalé Mongo. Detuve el servicio Node y luego corrí
dentro de la carpeta de nivel superior de mi proyecto de nodo. Esto solucionó el problema y todo estaba como nuevo
fuente
Estaba tratando de ejecutar el nodo en la carpeta compartida de máquina virtual (vagabundo). Eso fue un problema. Mi máquina host es Windows, nodo instalado en Windows y funcionó de maravilla. Entonces, si está utilizando una máquina virtual, solo intente ejecutar el servidor de nodo en la máquina host.
fuente
Simplemente tuve el mismo problema y, literalmente, nada funcionó para mí. El error que se estaba mostrando
kerberos
está causando el problema y era una de lasmongoose
dependencias. Como estoy en Ubuntu, pensé que podría haber problemas de permisos en algún lugar entre los paquetes instalados globalmente, en/usr/lib/node_modules
viasudo
, y los que están en el espacio del usuario.Lo instalé
mongoose
globalmente, porsudo
supuesto, y todo comenzó a funcionar como se esperaba.PD El
kerberos
paquete ahora también se instala globalmente al ladomongoose
, sin embargo, no puedo recordar si lo hice deliberadamente, mientras intentaba resolver el problema o si estaba allí desde el principio.fuente
Estoy trabajando en Docker con centOS 7, y encontré el mismo problema.
después de mirar alrededor y hacer varios intentos, arreglé este problema instalando mongodb y mongodb-server
No creo que esta sea la mejor manera de producir el contenedor mínimo. pero puedo limitar el alcance en los siguientes paquetes
fuente
Para Windows 7.1, estas instrucciones me ayudaron a arreglar mi entorno de compilación:
https://github.com/mongodb/js-bson/issues/58#issuecomment-68217275
http://christiankvalheim.com/post/diagnose_installation_problems/
fuente
Pude resolver desinstalando y reinstalando el paquete monk. La instalación inicial aparentemente tenía una dependencia corrupta mongodb / bson.
fuente
Followint @ user1548357 Decidí cambiar el archivo del módulo en sí. Para evitar los problemas señalados por los comentarios válidos a continuación, incluí mis cambios en un script posterior a la instalación para poder configurarlo y olvidarlo y tener la seguridad de que se ejecutará cuando se instalen mis módulos.
y el guión es:
fuente
elimine fácilmente el problema simplemente agregando esta línea, intente y capture la ruta de bloqueo:
node_modules/mongoose/node_modules/mongodb/node_modules/bson/ext/index.js
¡¡¡Eso es todo!!!
fuente
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:
y finalmente, cuando instalé el módulo
node-gyp
(para construir complementos nativos) e incluso instalé Windows SDK con visual studio - nodejs no reconoció el módulo ensambladobson.node
como un 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
bson
módulo, obtienesjs-realization
, que es más lento.Vi muchos consejos como: "editar ruta en lo profundo de node_modules ...", que es totalmente inútil, porque no resuelve el problema, sino que simplemente apaga los mensajes de error.
fuente