我很难完成这3个软件包以安装和合作。这是我采取的步骤:

  1. 基于Linux的说明安装了NODEJS 0.6.3(我从网站下载了焦油球,而不是在git中使用distro): https://github.com/joyent/node/wiki/installation
  2. 使用此处找到的ONLINER安装安装了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/nonode/node_modules/mongodb/lib/mongodb/bson

我尝试调整此代码以匹配该行,但仍然没有成功:

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

知道我可能做错了什么?只是为了澄清,我是否需要构建每个NPM安装我下载或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;

请阅读 猫鼬文档.

其他提示

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

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

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

您可以按照必要的方式遵循模式以添加其他依赖关系。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top