node.js, mongoose и mongodb боль для установки :( - PullRequest
4 голосов
/ 30 ноября 2011

У меня проблемы с получением этих 3 пакетов для установки и совместной работы. Вот шаги, которые я предпринял:

  1. Установленный nodejs 0.6.3, основанный на инструкциях для Linux (я скачал tar-шар с сайта, а не использовал дистрибутив в git): https://github.com/joyent/node/wiki/Installation
  2. Установлен npm с использованием установки onliner, найденной здесь: http://npmjs.org/
  3. Установлены пакеты npm для mongodb, mongojs и mongoose. Все, кажется, установить как ожидалось.
  4. Создана небольшая программа для тестирования и получения следующего исключения:

    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 появляется в этом каталоге для меня: / opt / node / node_modules / mongodb / lib / mongodb / bson

Я пытался настроить эту строку кода, чтобы она соответствовала этому, и все еще безуспешно:

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

Есть идеи, что я могу делать не так? Просто чтобы уточнить, нужно ли собирать каждую загруженную мной установку npm или npm делает это?

ТИА!

Ответы [ 2 ]

8 голосов
/ 30 ноября 2011

Возможно, вы установили mongodb в неправильный каталог для вашего проекта. Хороший способ избежать подобных проблем - использовать файл package.json.

Создайте каталог для вашего проекта узла и переместите в него файл .js. Добавьте файл package.json со следующим содержимым:

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

Вы можете следовать шаблону для добавления других зависимостей по мере необходимости.

Затем из этого каталога запустите 'npm install'. Он установит все зависимости для вашего приложения. Оттуда ваше приложение должно работать нормально.

4 голосов
/ 30 ноября 2011

mongodb\bson не модуль, откуда вы взяли этот пример?

Нормальное использование Монго в node.js достигается:

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

Теперь вы можете подключиться через

mongoose.connect("url");

При попытке получить функцию ObjectID не следует полагаться на mongodb, а на mongoose через:

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

Пожалуйста, прочитайте документацию Mongoose .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...