Модуль предоставления БД, обратный вызов - PullRequest
0 голосов
/ 18 октября 2011

Для моего проекта NodeJS я хочу создать простой модуль, который даст мне дескриптор БД для работы.Я думал о чем-то вроде этого:

settings = module.exports.settings =
    db: 'test'
    clear_interval: -1
    host: '127.0.0.1'
    port: '27017'
    auto_reconnect: true

{Db, Connection, Server, Collection, BSON, ObjectID} = require 'mongodb'

db = new Db settings.db, new Server settings.host, settings.port, { auto_reconnect: settings.auto_reconnect }
db.open ->
    module.exports.db = db

Но действительно ли это безопасно?Или есть другой способ убедиться, что module.exports.db правильно установлен при загрузке модуля?

РЕДАКТИРОВАТЬ Случайно нажмите Enter, прежде чем я закончил печатать.

1 Ответ

1 голос
/ 18 октября 2011

Это не сработает.

module.exports.db устанавливается после того, как модуль требуется.

Вместо этого вы должны сделать что-то вроде

module.exports.DB = function (cb) {
  getDbAsync(cb);
}

Заставьте ваш API быть асинхронным

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...