2011-11-30 38 views
4

我無法獲得這些3周要安裝的軟件包,共同下面是我所採取的步驟:0.6.3基於node.js中,貓鼬和MongoDB一個痛苦的安裝:(

  1. 安裝的NodeJS在這裏用於Linux的說明(我從網上下載的網站上的焦油球,而不是使用Git中發行):https://github.com/joyent/node/wiki/Installation
  2. 安裝NPM使用onliner安裝在這裏找到:http://npmjs.org/
  3. 安裝NPM包mongodb的,mongojs和貓鼬似乎都按預期安裝了。
  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_modules/MongoDB的/ lib中/的MongoDB/BSON

我試圖調整這一行代碼,以匹配和仍然沒有成功:

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

任何想法,我可能是做錯了?只是爲了澄清,我是否需要建立每個npm安裝我下載或做npm做?

TIA!

回答

4

mongodb\bson是沒有模塊,你從哪裏得到這個例子?

在node.js中蒙戈的正常使用是通過實現:

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

現在,你可以通過

mongoose.connect("url"); 

連接當試圖檢索ObjectID功能,您不應該依賴mongodb但on mongoose via:

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

請閱讀Mongoose documentation

+0

我在這裏得到了示例:http://webdribble.blogspot.com/2010/07/extdirect-gridpanel-w-connect-on-nodejs.html從7/2010。我真的在尋找一個將ExtJS連接到MongoDB和節點的簡單例子。 – occasl

+0

我繼續在我的Mac上安裝它,沒有任何問題......它現在按預期工作。 – occasl

8

您可能將mongodb安裝在您項目的錯誤目錄中。避免這些問題的一個好方法是使用package.json文件。

爲您的節點項目創建一個目錄並將.js文件移入其中。使用這些內容添加一個名爲package.json的文件:

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

您可以按照該模式在必要時添加其他依賴項。

然後從該目錄運行'npm install'。它會安裝你的應用程序的所有依賴項。從那裏你的應用程序應該運行良好。

+0

謝謝......我嘗試了你的建議,但基於我使用的版本得到這個:npm ERR!無法讀取依賴關係。 npm ERR!錯誤:'版本'字段丟失 npm ERR! '版本'必須是X.Y.Z,帶有可選的結尾標籤。 npm ERR!請參閱'npm help json'中的'version'部分。 npm ERR!at /usr/local/lib/node_modules/npm/lib/utils/read-json.js:335:13 – occasl

+0

add'「version」:「0.1.0」,' –

+0

@occasl請閱讀package.json的標準。有些字段必須存在。 – AlexKey