我无法让这 3 个软件包一起安装和工作。以下是我采取的步骤:

  • 根据此处针对 Linux 的说明安装了 nodejs 0.6.3(我从站点下载了 tar ball,而不是在 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.<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 install 或者 npm 是否这样做?

    蒂亚!

    最佳答案

    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 documentation

    10-06 14:16
    查看更多