Frage

Ich habe Probleme, diese 3 Pakete zu installieren und zusammenzuarbeiten. Hier sind die Schritte, die ich unternommen habe:

  1. Installierte NodeJS 0.6.3 basierend auf den Anweisungen hier für Linux (ich habe den Teerball von der Website heruntergeladen, anstatt die Distribution in Git zu verwenden): https://github.com/joyent/node/wiki/installation
  2. Installierte NPM mit der hier gefundenen Onliner -Installation: http://npmjs.org/
  3. Installierte NPM -Pakete für MongoDB, Mongojs und Mongoose. Alle scheinen wie erwartet zu installieren.
  4. Erstellt ein kleines Programm, um die folgende Ausnahme zu testen und zu erhalten:

    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 erscheint unter diesem Verzeichnis für mich:/opt/node/node_modules/mongoDB/lib/mongoDB/bson

Ich habe versucht, diese Codezeile so anzupassen, dass sie dem entspricht, und immer noch kein Erfolg:

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

Irgendeine Idee, was ich falsch mache? Um nur zu klären, muss ich jede NPM -Installation erstellen, die ich heruntergeladen habe, oder macht NPM das?

Tia!

War es hilfreich?

Lösung

mongodb\bson Ist kein Modul, woher haben Sie dieses Beispiel?

Der normale Einsatz von Mongo im Knoten.js wird erreicht durch:

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

Jetzt können Sie eine Verbindung über eine Verbindung über

mongoose.connect("url");

Beim Versuch, das abzurufen ObjectID Funktion, auf die Sie sich nicht verlassen sollten mongodb aber weiter mongoose über:

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

Bitte lesen Sie die Mongoose -Dokumentation.

Andere Tipps

Es ist möglich, dass Sie MongoDB im falschen Verzeichnis für Ihr Projekt installiert haben. Eine gute Möglichkeit, diese Art von Problemen zu vermeiden, besteht darin, eine Paket.json -Datei zu verwenden.

Erstellen Sie ein Verzeichnis für Ihr Knotenprojekt und verschieben Sie Ihre .js -Datei in sie. Fügen Sie eine Datei namens Package.json mit diesen Inhalten hinzu:

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

Sie können das Muster befolgen, um Ihre anderen Abhängigkeiten nach Bedarf hinzuzufügen.

Führen Sie dann aus diesem Verzeichnis "NPM Install" aus. Es wird alle Abhängigkeiten für Ihre App installiert. Von dort sollte Ihre App gut laufen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top