繁体   English   中英

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

[英]node.js, mongoose and mongodb a pain to install :(

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

  1. 根据这里针对Linux的说明安装了nodejs 0.6.3(我从网站下载了tar球而不是在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文件。

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

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

您可以按照模式添加其他依赖项。

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

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文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM