具有nodejs的mongodb

时间:2013-03-11 06:57:57

标签: node.js mongodb

这是我使用的文件插入mongodb的代码。

        var client = new Db('test', new Server("127.0.0.1", 27017, {}), {w: 1}),
        test = function (err, collection) {
        collection.insert({a:2}, function(err, docs) {

        collection.count(function(err, count) {
          test.assertEquals(1, count);
        });

        // Locate all the entries using find
        collection.find().toArray(function(err, results) {
          test.assertEquals(1, results.length);
          test.assertTrue(results[0].a === 2);

          // Let's close the db
          client.close();
        });
      });
    };

client.open(function(err, p_client) {
  client.collection('test_insert', test);
});

但在跑步时我收到错误

xports,require,module,__ filename,__ dirname){var client = new Db('test',                                                                     ^ ReferenceError:未定义Db     在对象。 (C:\ Users \ Basic node \ cheerio \ mongonode.js:1:81

at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.runMain (module.js:492:10)
at process.startup.processNextTick.process._tickCallback (node.js:244:9)

你能建议我如何解决这个问题

提前致谢

3 个答案:

答案 0 :(得分:4)

请导入您正在使用的所有必需模块。 Db is not defined指出Db已在其他模块中定义,或者您忘记声明它。

答案 1 :(得分:3)

你会注意到这个确切的代码块发布在许多不同的stackoverflow问题中。这里的问题是这是mongodb文档中的复制和粘贴代码块,实际上是mongodb nodejs程序的第一个例子。

https://npmjs.org/package/mongodb

您可以在“简介”下找到“插入文档的简单示例”。

这显然是一个不完整的例子,但是很多人只是试着看看他们是否已经正确安装了所有东西并立即撞到墙上。

大多数人都会安装mongodb驱动程序,但会在顶部丢失一些东西:

var mongodb = require('mongodb');
var Db = mongodb.Db;
var Server = mongodb.Server;

我也陷入了复制粘贴陷阱,并遇到了另一个问题,“assertEquals”方法不存在。我见过其他人在网络上的其他地方引用该功能,但不确定它是如何工作的。

在任何情况下,为了使它适用于我,我需要断言模块:

var assert = require('assert');

然后我用这样的东西替换了assertEquals行:

          assert.equal(1, count, "Unexpected result");

请注意,如果您运行了几次,就会遇到问题。它会计算该表中的事物数量,并且会有不止一个。

你必须弄清楚如何进入mongo的CLI并删除它们以使其成功运行。

答案 2 :(得分:0)

尝试安装mongodb本机驱动程序

npm install mongodb