Node.js экспортирует модули в app.js и включает app.js в отдельные модули - PullRequest
3 голосов
/ 30 января 2012

Итак, я нахожусь в процессе разделения моего экспресс-приложения на модули, и у меня есть вопрос.

В настоящее время мой app.js содержит:

var db = module.exports.db = require('./helpers/db')(app.set('database'))

и файлы моделей содержат:

var DB = require('../app').db;

После прочтения Это кажется, что одним из способов структурирования модулей было бы экспортировать приложение и требовать приложение изнутри модуля, а затем потребовать, чтобы этот модуль находился прямо в будущем.

Это означало бы, что в моем db.js мне потребуется require ('../ app'), а в моих моделях db = require ('db').

В настоящее время db.js возвращает новый экземпляр подключения mysql:

 module.exports = function(settings) {
return new MysqlDB(settings);

}

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

Я написал это немного смущенно, поэтому, пожалуйста, дайте мне знать, где я могу улучшить вопрос. Любые советы приветствуются , я действительно хочу лучше понять все это.

спасибо!

1 Ответ

1 голос
/ 30 января 2012

Я бы склонялся к введению требования в модуль, а не к тому, чтобы модуль знал, где взять экземпляр объекта db. Это уменьшает сцепление и облегчает внедрение фиктивного объекта БД для целей тестирования.

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