node.js,mongoose和mongodb痛苦安装:(

我无法获得这3个软件包的安装和协同工作。 以下是我采取的步骤:

  1. 安装nodejs 0.6.3基于这里的Linux指令(我下载了网站的tar球,而不是在git中使用发行版): https : //github.com/joyent/node/wiki/Installation
  2. 使用在线安装npm安装在这里find: http ://npmjs.org/
  3. 为mongodb,mongojs和mongoose安装了npm软件包。 所有似乎都按预期安装。
  4. 创build一个小程序来testing,并得到以下例外:

    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; 

任何想法我可能做错了什么? 只是为了澄清,我需要build立每一个我下载的npm安装或做npm吗?

TIA!

mongodb\bson是没有模块的,你从哪里得到这个例子?

在node.js中正常使用mongo是通过以下方式实现的:

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

现在你可以通过连接

 mongoose.connect("url"); 

当试图检索ObjectID函数时,您不应该依赖mongodb而是通过以下方式使用mongoose

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

请阅读Mongoose文档 。

你可能在你的项目中安装了mongodb的错误目录。 避免这些问题的一个好方法是使用package.json文件。

为您的节点项目创build一个目录,并将.js文件移动到其中。 用这些内容添加一个名为package.json的文件:

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

您可以根据需要添加其他依赖项。

然后从该目录运行“npm install”。 它会安装您的应用程序的所有依赖项。 从那里你的应用程序应该运行良好。