我无法安装这3个软件包并一起工作.以下是我采取的步骤:
根据这里针对Linux的说明安装了nodejs 0.6.3(我从网站下载了tar球而不是在git中使用发行版):https://github.com/joyent/node/wiki/Installation
使用在线安装程序安装npm:http://npmjs.org/
为mongodb,mongojs和mongoose安装了npm包.所有似乎都按预期安装.
创建了一个小程序来测试并获得以下异常:
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.(/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这样做?
TIA!
您可能已将mongodb安装在项目的错误目录中.避免这些问题的一个好方法是使用package.json文件.
为节点项目创建一个目录,并将.js文件移动到该目录中.添加一个名为package.json的文件,其中包含以下内容:
{ "name": "application-name", "private": true, "dependencies": { "mongodb": ">=0.9.6-7", "mongoose": ">=0.0.1" } }
您可以按照模式添加其他依赖项.
然后从该目录运行'npm install'.它将为您的应用安装所有依赖项.从那里你的应用程序应该运行正常.