流星 - 未捕捉错误:找不到模块' mongodb'

时间:2017-07-17 20:31:14

标签: javascript mongodb meteor

我试图在Meteor应用程序和MongoDB Atlas数据库之间建立连接。

我有以下一点JavaScript:

  var MongoClient = require('mongodb').MongoClient, format = require('util').format;                  
MongoClient.connect('<MyMongoURL>', function (err, db) {
if (err) {
    throw err;
} else {
    console.log("successfully connected to the database");

    db.collection('largeTreeMap', function(err, docs) {
    // Check for error
    if(err) return console.log(err);
    // Walk through the cursor
    docs.find().each(function(err, doc) {
        // Check for error
        if(err) return console.err;
        // Log document
        console.log(doc);
    })
});

}
db.close();      });

我将此添加到名为test.js的空白JS文档中,并在运行

时添加
node test.js

在我的命令行中,它返回了成功消息和数据:

Success

现在,我知道可以建立连接,我将代码添加到我的Meteor项目中。我创建了一个基本按钮,onClick与MongoDB的连接应该完成。

但是,我收到以下控制台错误:

Error

我从阅读各种Stack问题中了解到,这是因为未在项目目录中运行npm install mongodb。但是,我试过这样做,终端返回:

Error 2

是否有人知道为什么MongoDB无法安装并阻止我在我的应用程序中连接到MongoDB?

非常感谢任何帮助,

非常感谢,

1 个答案:

答案 0 :(得分:1)

您正在尝试从客户端连接到Mongo实例,这可能不是您想要的。

mongodb npm包只支持Node.js,而不支持浏览器中的JavaScript,正如您在package.json

中的这一行所看到的那样
"engines": {
  "node": ">=0.10.3"
},

如果工作正常,则使用Node运行它。

您可能想要做的是将MONGO_URL环境变量设置为Mongo Atlas实例,并将连接/更新的实现保留给Meteor本身。