Pregunta

Tengo problemas para obtener estos 3 paquetes para instalar y trabajar juntos. Aquí están los pasos que tomé:

  1. NodeJS instalado 0.6.3 basado en las instrucciones aquí para Linux (descargué la bola de alquitrán del sitio en lugar de usar la distribución en git): https://github.com/joyent/node/wiki/installation
  2. NPM instalado utilizando la instalación de Onliner que se encuentra aquí: http://npmjs.org/
  3. Paquetes NPM instalados para MongoDB, Mongojs y Mongoose. Todos parecen instalar como se esperaba.
  4. Creó un pequeño programa para probar y obtener la siguiente excepción:

    Error: Cannot find module 'mongodb/bson'
    at Function._resolveFilename (module.js:334:11)
    at Function._load (module.js:279:25)
    at Module.require (module.js:357:17)
    at require (module.js:368:17)
    at Object.<anonymous> (/local/mnt/apps/node-v0.6.3/app.js:6:16)
    at Module._compile (module.js:432:26)
    at Object..js (module.js:450:10)
    at Module.load (module.js:351:31)
    at Function._load (module.js:310:12)
    at Array.0 (module.js:470:10)
    

Bson.js aparece en este directorio para mí:/opt/node/node_modules/mongoDB/lib/mongoDB/BSON

He intentado ajustar esta línea de código para que coincida con eso y todavía no hay éxito:

var mongoose = require('mongoose').Mongoose,
ObjectID = require('mongodb/bson').ObjectID;

¿Alguna idea de lo que podría estar haciendo mal? Solo para aclarar, ¿necesito construir cada instalación de NPM que descargué o lo hace NPM?

¡Tia!

¿Fue útil?

Solución

mongodb\bson No es un módulo, ¿de dónde sacaste este ejemplo?

El uso normal de Mongo en Node.js se logra por:

var mongoose = require('mongoose');
var mongodb = require('mongodb');

Ahora puedes conectarte a través de

mongoose.connect("url");

Al intentar recuperar el ObjectID función en la que no debes confiar mongodb pero en mongoose a través de:

var schema = mongoose.Schema,
    objectId = schema.ObjectId;

Por favor lea el Documentación de mangosta.

Otros consejos

Es posible que haya instalado MongoDB en el directorio incorrecto para su proyecto. Una buena manera de evitar este tipo de problemas es usar un archivo paquete.json.

Cree un directorio para su proyecto de nodo y mueva su archivo .js. Agregue un archivo llamado paquete.json con estos contenidos:

{  
   "name": "application-name",
   "private": true,
   "dependencies": {
      "mongodb": ">=0.9.6-7",
      "mongoose": ">=0.0.1"
    }
}

Puede seguir el patrón para agregar sus otras dependencias según sea necesario.

Luego, desde ese directorio, ejecute 'NPM Install'. Instalará todas las dependencias para su aplicación. Desde allí, su aplicación debería funcionar bien.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top