2012-03-11 4 views
0

В следующем коде функция перешла к открытой функции никогда не работает, то istruction console.log («открыт!») В следующем коде никогда не работает:водитель MongoDb в nodejs не вызывает открытую функцию обратного вызова

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 большие работы с интерактивной оболочки.

может кто-нибудь сказать мне какое-нибудь предложение?

спасибо!

+0

Какую версию узла вы используете? И какую версию драйвера узла вы используете? – mpobrien

+1

В дополнение к вашему вопросу, я обновил до последней версии узла, я переустановил драйверы, и теперь все работает. Спасибо! – mario

ответ

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 
    }); 
} 
+0

Благодарим за ответ. У меня такая же проблема с этим кодом – mario

+0

, если вы положили console.log ('asdf'); перед var client = .... он ничего записывает? –

+0

Да, это журнал 'asdf'. Вместо этого открытый callback работает только в том случае, если mondodb отключен :( – mario

Смежные вопросы