uso type script para otro llamar insertar incluir funcion externo etiqueta documentos desde cómo archivo javascript node.js express mongoose dependencies

para - script type= text/javascript src=



Error al cargar la extensión c++ bson (30)

Un nodo novato total aquí. He intentado configurar una aplicación de nodo de muestra, pero el siguiente error sigue apareciendo cada vez que intento ejecutar:

aplicación 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)


Acabo de correr:

sudo npm install bson

y

sudo npm update

y todos se vuelven correctos


Acabo de resolver eso.

Cuando instala el módulo de mangosta por npm, no tiene un módulo bson incorporado en su carpeta. En el archivo node_modules/mongoose/node_modules/mongodb/node_modules/bson/ext/index.js , cambie la línea

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

a

bson = require(''bson'');

y luego instale el módulo bson usando npm.


Así es como solucioné el problema en Ubuntu:

  1. ln -s /usr/bin/nodejs /usr/bin/node
  2. npm install node-gyp
  3. cd node_modules/mongodb/node_modules/bson
  4. node-gyp rebuild

Inspirado por la respuesta @mbochynski, pero primero tuve que crear un enlace simbólico, de lo contrario la reconstrucción falló.


El mensaje de extensión bson es solo una advertencia , lo obtengo todo el tiempo en mi aplicación nodejs.

Cosas para verificar:

  • Instancia de MongoDB : ¿Tienes una instancia de MongoDB ejecutándose?
  • Config : ¿Ha configurado correctamente Mongoose en su instancia de MongoDB? Sospecho que su configuración es incorrecta, porque el mensaje de error arroja una cadena muy extraña para el nombre de host de su servidor mongodb.

En WIN 8.1

Parece que utilicé una versión incorrecta de mangosta en mi archivo package.json.

Quité la línea "mangosta": "^ 3.8.15" de package.json

CLI: npm install mongoose --save

Ahora dice "mangosta": "^ 4.0.6" en package.json y el error que tuve se fue.


Entonces, en mi caso, primero traté de verificar bajo este directorio / node_modules / mongoose / node_modules / , solo para confirmar que tengo el módulo bson . Descubrí que no lo tenía en primer lugar, luego solo corrí

npm install bson

y entonces

npm update

Todo fue ordenado. Probado y probado en Ubuntu.


Estaba intentando ejecutar el nodo en la carpeta compartida de la máquina virtual (vagabundo). Eso fue un problema. Mi equipo host es Windows, nodo instalado en Windows y funcionaba como un hechizo. Por lo tanto, si está utilizando una máquina virtual, intente ejecutar el servidor de nodo en la máquina host.


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 lo hice, volví a ejecutar estos comandos:

rm -rf node_modules npm cache clean npm install


Estoy trabajando en Docker con CentOS 7, y encontré el mismo problema.

Después de mirar alrededor y hacer varios intentos, solucioné este problema instalando mongodb y mongodb-server

yum install mongodb mongodb-server

No creo que esta sea la mejor forma de producir el contenedor mínimo. pero puedo limitar el alcance en los siguientes paquetes

============================================================================================================== Package Arch Version Repository Size ============================================================================================================== Installing: mongodb x86_64 2.6.5-2.el7 epel 57 M mongodb-server x86_64 2.6.5-2.el7 epel 8.7 M Installing for dependencies: boost-filesystem x86_64 1.53.0-18.el7 base 66 k boost-program-options x86_64 1.53.0-18.el7 base 154 k boost-system x86_64 1.53.0-18.el7 base 38 k boost-thread x86_64 1.53.0-18.el7 base 56 k gperftools-libs x86_64 2.1-1.el7 epel 267 k libpcap x86_64 14:1.5.3-3.el7_0.1 updates 137 k libunwind x86_64 1.1-3.el7 epel 61 k snappy x86_64 1.1.0-3.el7 base 40 k


Finalmente corregí este error actualizando mi versión de dependencia mongodb a "~ 2.0.36" en package.json.

"dependencies": { "consolidate": "~0.9.1", "express": "3.x", "mongodb": "~2.0.36", "mongoose": "^4.1.12" }


He solucionado el problema de obtener la "Error al cargar la extensión c ++ bson" en raspbian (debian para frambuesa) por:

npm install -g node-gyp

y entonces

npm update


Lamentablemente, todas las respuestas anteriores son solo la mitad de lo correcto ... Tomó mucho tiempo para resolver esto ...

La instalación de Mongoose bson vía npm arroja una advertencia y causa 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 !!


Lo arreglé cambiando la línea 10 de /node_modules/mongoose/node_modules/mongodb/node_modules/bson/ext/index.js desde:

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

a:

bson = require(''bson'');


No pude resolver esto

hasta ahora. En primer lugar, debe tener paquetes de sistema mencionados por Pradeep Mahdevu. Esos son:

xcode-select --install (on a mac)

o

sudo apt-get install gcc make build-essential (on ubuntu)

Entonces he instalado node-gyp

npm install -g node-gyp

como datadracer dijo, 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, los cambios API entre versiones).

Sugiero ir al directorio node_modules / mongodb / node_modules / bson y desde allí usar

node-gyp rebuild

Eso resolvió el problema para mí.



Para mí, solo es necesario ejecutar estos comandos en mi directorio api:

rm -rf node_modules npm cache clean npm install


Pude resolver desinstalando y reinstalando el paquete monk. La instalación inicial aparentemente tenía una dependencia mongodb / bson corrupta.


Si la extensión bson no era la razón, supuse que la otra razón para "no se pudo conectar" sería la identificación del usuario. Así que creé una nueva base de datos y agregué un usuario para la base de datos, con una contraseña para ese usuario ( nota : contraseña de la cuenta no mongolab). Actualicé esos en mi código y ¡voilá! Funcionó. Duh ¿verdad? :RE


Simplemente tuve el mismo problema y, literalmente, nada funcionó para mí. El error mostraba que kerberos estaba causando el problema y que era una de las dependencias de mongoose . 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 través de sudo , y los que están en el espacio de usuario.

Instalé mongoose todo el mundo, con sudo por supuesto, y todo comenzó a funcionar como se esperaba.

PD: El paquete kerberos ahora también está instalado globalmente al lado de mongoose , sin embargo, no recuerdo si lo hice deliberadamente, mientras intentaba resolver el problema, o si estaba allí desde el principio.


Solucioné este problema en CentOS por

  • sudo yum groupinstall "Herramientas de desarrollo"
  • sudo npm install -g node-gyp
  • rm -r node_modules
  • npm caché limpia
  • npm instalar

Supongo que no tenía las herramientas make disponibles cuando instaló su biblioteca mongodb. Te sugiero que hagas

xcode-select --install (en un mac) o sudo apt-get install gcc make build-essential (en ubuntu)

y correr

rm -rf node_modules npm cache clean npm install

O simplemente actualización de npm basada en el comentario de @tobias (después de instalar build-essential)

npm update


También encontré el mismo problema y soy un usuario de Mac OSX. Básicamente, debe asegurarse de haber instalado Xcode y también las "Herramientas de línea de comando" dentro de Xcode.

Xcode es gratuito y se puede descargar aquí: https://developer.apple.com/xcode/downloads/

Después de haber instalado el Xcode, ábralo y haga clic en "Preferencia" en el menú desplegable, y haga clic en el icono "Descargas". Asegúrese de tener instaladas las "Herramientas de línea de comando".

Luego ejecute los siguientes comandos como todos los otros usuarios mencionados anteriormente:

rm -rf node_modules npm cache clean npm install


También tuve este problema e hizo que mis sesiones no funcionaran. Pero no para romper tampoco ...

Usé una conexión de mangosta.

Tenía esto:

var mongoose = require(''mongoose''); var express = require(''express''); var cookieParser = require(''cookie-parser''); var expressSession = require(''express-session''); var MongoStore = require(''connect-mongo'')(expressSession); ... var app = express(); app.set(''port'', process.env.PORT || 8080); app.use(bodyParser); mongoose.connect(''mongodb://localhost/TEST''); var db = mongoose.connection; db.on(''error'', console.error.bind(console, ''connection error:'')); db.once(''open'', function callback () { console.log(''MongoDB connected''); }); app.use(cookieParser()); app.use(expressSession({ secret: ''mysecret'', cookie: { maxAge: null, expires: moment().utc().add(''days'',10).toDate(),// 10 dagen }, store: new MongoStore({ db: ''TEST'', collection: ''sessions'', }),

Muy sencillo. Pero la req.session permaneció siempre vacía.

rm -rf node_modules npm cache clean npm install

Hizo el truco. Cuidado con que no tienes un ''mongodb'' en tu paquete. ¡Json! Sólo Mongoose y connect-mongo.


Tuve el mismo problema en mi instancia de EC2. Creo que la causa inicial fue porque tenía una instancia de Node ejecutándose cuando instalé Mongo. Paré el servicio Node y luego corrí

sudo npm update

dentro de la carpeta de nivel superior de mi proyecto de nodo. Esto solucionó el problema y todo era como nuevo


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. Tal vez tenían diferentes arquitecturas de procesador también.


Un problema común es que node-gyp requiere Python 2.x y si el sistema python apunta a 3.x, no podrá compilar bson , sin previo aviso. Puede solucionar esto configurando una clave global python en su configuración npm que apunta al ejecutable 2.x en su sistema. Por ejemplo, en Arch Linux:

npm config -g set python "/usr/bin/python2"


en ubuntu 14.04 necesitaba crear un enlace en / usr / bin porque / usr / bin / env estaba buscando / usr / bin / node

ln-usr / bin / nodejs / usr / bin / node

Los mensajes de error se pueden encontrar en builderror.log en cada directorio para el mensaje:

[email protected] install / usr / local / lib / node_modules / mongodb / node_modules / mongodb-core / node_modules / bson (node-gyp rebuild 2> builderror.log) || (salida 0)

mira este archivo para más información sobre el problema exacto

/usr/local/lib/node_modules/mongodb/node_modules/mongodb-core/node_modules/bson/builderror.log


estaba teniendo el mismo problema intenté con tantas opciones pero npm intall en la última npm intall en mi carpeta de aplicaciones.


solo quería decir que también tuve el error

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

Pero con ninguno de los otros errores. Intenté todo y resultó que los controladores de mongodb que estaba especificando en el paquete. El archivo json era incompatible con mi versión de MongoDB. Lo cambié a mi última versión que era (1.4.34) y funcionó !!!


sudo npm rebuild fue lo que lo solucionó.