node.js, Mangusta e MongoDB un dolore da installare :(
Domanda
Sto avendo difficoltà a raggiungere questi 3 pacchetti da installare e lavorare insieme. Ecco i passi che ho preso:
- nodejs installati 0.6.3 in base alle istruzioni qui per Linux (ho scaricato la palla di catrame dal sito anziché utilizzare la distro in git): https://github.com/joyent/node/wiki/Installation
- NPM installato utilizzando il onliner install trovato qui: http://npmjs.org/
- pacchetti NPM installati per MongoDB, mongojs e manguste. Tutti sembrano installare come previsto.
-
Creato un piccolo programma per testare e ottenere la seguente eccezione:
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 appare in questa directory per me: / opt / node / node_modules / mongodb / lib / mongodb / BSON
Ho provato regolando questa riga di codice in modo che corrisponda e ancora nessun successo:
var mongoose = require('mongoose').Mongoose,
ObjectID = require('mongodb/bson').ObjectID;
Qualsiasi idea di quello che potrebbe essere sbagliato? Giusto per chiarire, ho bisogno di costruire ogni NPM installare ho scaricato o se NPM farlo?
TIA!
Soluzione
mongodb\bson
è alcun modulo, dove hai preso questo esempio da?
L'uso normale di Mongo in node.js si ottiene:
var mongoose = require('mongoose');
var mongodb = require('mongodb');
Ora è possibile connettersi tramite
mongoose.connect("url");
Quando si cerca di recuperare la funzione ObjectID
non si dovrebbe fare affidamento su mongodb
ma su mongoose
via:
var schema = mongoose.Schema,
objectId = schema.ObjectId;
Si prega di leggere il Mongoose documentazione .
Altri suggerimenti
E 'possibile che si è installato nella directory MongoDB sbagliato per il vostro progetto. Un buon modo per evitare questo tipo di problemi è quello di utilizzare un file package.json.
Creare una directory per il progetto del nodo e spostare il file .js in esso. Aggiungere un file chiamato package.json con questi contenuti:
{
"name": "application-name",
"private": true,
"dependencies": {
"mongodb": ">=0.9.6-7",
"mongoose": ">=0.0.1"
}
}
È possibile seguire il modello di aggiungere le altre dipendenze, se necessario.
Poi da quella directory, eseguire 'NPM install'. Si installerà tutte le dipendenze per la tua app. Da lì la vostra applicazione dovrebbe funzionare bene.