mongodb - node.js、mongoose 和 mongodb 安装起来很痛苦 :(

标签 mongodb node.js mongoose

我在安装这 3 个软件包并协同工作时遇到了问题。以下是我采取的步骤:

  1. 根据此处针对 Linux 的说明安装了 nodejs 0.6.3(我从站点下载了 tar ball,而不是使用 git 中的发行版):https://github.com/joyent/node/wiki/Installation
  2. 使用此处的在线安装程序安装了 npm:http://npmjs.org/
  3. 为 mongodb、mongojs 和 mongoose 安装了 npm 包。一切似乎都按预期安装。
  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 会这样做吗?

TIA!

最佳答案

您可能将 mongodb 安装在项目的错误目录中。避免此类问题的一种好方法是使用 package.json 文件。

为您的 Node 项目创建一个目录,并将您的 .js 文件移入其中。添加一个名为 package.json 的文件,其中包含以下内容:

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

您可以根据需要按照模式添加其他依赖项。

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

关于mongodb - node.js、mongoose 和 mongodb 安装起来很痛苦 :(,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8319743/

相关文章:

node.js - Mongoose 预保存 Hook 正在触发,但未保存其他字段(不使用 model.update)

node.js - 如何在 Mongoose 中添加模式方法?

php - Heroku远程MongoDB与php连接

node.js - 快速 session 条目未从 mongodb 中完全删除

python - 获取引用对象的ID而不获取它

javascript - 在 Meteor 中使用动态变量访问另一个变量的值?

javascript - 将 sql 查询转换为 sequelize

javascript - Mongoose - 保持模型与变化相关联

javascript - Android Cordova插件开发-JS接口(interface)错误

node.js - 执行 find() 时在 Mongoose 中调用虚方法