nodejs中的MongoDb驱动程序不调用open函数回调

时间:2012-03-11 16:24:02

标签: node.js mongodb

在下面的代码中,传递给open函数的函数永远不会运行,然后以下代码中的istruction console.log('open!')永远不会运行:

var mongo = require("mongodb");
var Db = mongo.Db;
var connection = mongo.Connection;
var Server = mongo.Server;

var client = new Db('test', new Server("localhost", 27017, {}));

var 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) {
    console.log('open!');
    client.collection('test_insert', test);
});

从日志中我看到接受连接:

Sun March 11 16:52:01 [initandlisten] accepted connection from 127.0.0.1:61875 # 1

Mongodb来自互动外壳的伟大作品。

有人可以告诉我任何建议吗?

谢谢你!

1 个答案:

答案 0 :(得分:0)

复制/粘贴...它应该没有任何问题:

var client = new Db('test', new Server("localhost", 27017, {}), {});
client.open(function(err, client) {
    console.log('open!');
}

另外,打开连接后不要忘记进行身份验证。

var client = new Db('test', new Server("localhost", 27017, {}), {});
client.open(function(err, client) {
    console.log('open!');
    client.authenticate('admin', 'admin', function(err, result) {
        // Authenticated
    });
}