Mongodb's official driver подключается к дБ асинхронно с обратным вызовом.
из README:
var MongoClient = require('mongodb').MongoClient
, assert = require('assert');
// Connection URL
var url = 'mongodb://localhost:27017/myproject';
// Use connect method to connect to the Server
MongoClient.connect(url, function(err, db) {
assert.equal(null, err);
console.log("Connected correctly to server");
db.close();
});
Допустим, вы хотели отправить результаты находке() как ответ в формате JSON, вы бы:
- Подключение к БД.
- внутри обратного вызова connect вызовите db.collection.find()
- внутри обратного вызова find(), передайте результаты обработчику отправки ответа. (
res
объект в экспресс get()).
Таким образом, шаблон: вложение обратных вызовов и завершение вызовом объекта ответа/контроллера MVC/что-то подобное.
Я нашел это сообщение, которое может помочь .. [http://stackoverflow.com/questions/22160709/non-blocking-mongodb-nodejs](http://stackoverflow.com/questions/22160709/non-blocking- mongodb-nodejs) – illcrx
Документация водителя по адресу http://mongodb.github.io/node-mongodb-native/2.2/ является хорошим показанием. Кажется, код можно структурировать, используя либо обратные вызовы, либо обещания ES6 (которые поддерживаются в Node). – traktor53