Поскольку доступ к базе данных MongoDB и ее инициализация асинхронны в Node.js, я хотел бы определить один модуль для каждой коллекции, который экспортирует упакованные вызовы БД после инициализации БД.
Такой модуль "Cars.model.js" выглядит так:
var db = require("mongodb");
db.collection("cars", function(err, col) {
exports.getCars = function(callback) {
col.find({}, callback);
};
});
, чтобы другие модули могли работать:
var carModel = require("Cars.model.js").getCars;
getCars(err, cars) {
// (do something with cars here...)
};
Мне случилось, что getCars
не был определен, потому что доступ к базе данных еще не был инициализирован во время запуска моего второго модуля.
Как вы справляетесь с созданием таких асинхронных моделей БД?