Сам заголовок является предложением, потому что по умолчанию каждый модуль в приложении Node.js совместно используется с одним и тем же соединением базы данных. Но если осанка неверна, она может быть уродливой и может даже пойти не так.
Вы можете игнорировать следующую часть и добраться до сути.
фон
Недавно я занимаюсь профессиональным дизайном курса, название «Система управления бронированием билетов». Требование относительно просто, поэтому я попытался использовать Node.js, который я недавно изучал. Я также изучал, какой за рамки Node.js более подходит. Прочитав несколько рамок, я обнаружил, что это убийца. Если у вас есть время, чтобы прочитать документы и информацию об поиске, лучше написать их напрямую. Наконец, после написания я помесчу код на GitHub. Все могут критиковать и исправить меня.
С точки зрения базы данных, я думал, что я больше знаком с JSON и любил это (я признаю это, если я не изучал SQL хорошо -_-#), поэтому я выбрал MongoDB. Node + Mongo - все более популярная комбинация бэкэнд в последние годы, и есть много информации о том, как использовать его вместе в Интернете. Но для того, чтобы сэкономить время (дизайн курса составляет всего более недели), и сосредоточиться на системе и логике, я использовал Mongoose, расширение Node.js, специально используемое для моделирования данных MongoDB, чтобы значительно уменьшить код, который управляет базой данных.
Основная тема
Я установил две модели данных, одна - это пользователь (пользователь), а другая - полет (Flight), которые инкапсулируются в два модуля (модули) user.js, flight.js. Модель специально отвечает за взаимодействие с базой данных. Как пользователь, и модули полета должны подключаться к базе данных. Вначале мой код был следующим:
// ------ user.js ----- // Требуется mongoose.js Справочный mongoose.jsvar m = require ('mongoose'); // Подключиться к базе данных, подключаемому к базе данных m.connect ('mongodb: // localhost/test'); // ... какой-то другой код ... // ----- Felly.js -----//требуется mongose.js.js.js.js.js.js.js.js.js.js. require ('mongoose'); // подключиться к базе данных подключить к базе данных m.connect ('mongodb: // localhost/test'); // ... какой-то другой код ... // ------ models.js ----- var user = require (».Не говоря уже о том, что этот метод написания вообще не сухой, сам этот метод неверен. Когда я запускаю index.js, я получаю следующую ошибку.
> node index.js> Ошибка соединения: {[Ошибка: Попытка открыть Unclosed Connection.] Состояние: 2}Ошибка такова: попробуйте открыть незаконное соединение.
Таким образом, мы должны подключиться к базе данных один раз в одном месте, а затем другие модули, которые должны подключаться к базе данных, взаимодействуют с базой данных через этот модуль. Это было похоже на проводную доску, и он без колебаний кричал: «На стене только одна розетка, не лишайте ее! Дай мне уйти! Ты ... это нормально!»
Конкретный план
Мы помещаем действие подключения к базе данных в модуль и разоблачаем соединение с другими модулями во всем приложении, а затем другие модули, которые необходимо подключиться к базе данных, могут ссылаться на это соединение.
// ----- Database.js ----- var m = require ('mongoose'); m.connect ('mongodb: // localhost/test'); // Ссылка на подключение к базе данных Создание ссылки для этого соединения var db = m.connection; // insoce modules, которые требуют базы данных. user.js ----- Flight.js Allow -----/... какой-то другой код ... // Мы передадим ссылку на соединение базы данных в виде параметра в моделях. Ссылка на подключение к базе данных См. Подключение базы данных var db = require ('./ Database'); // Пересмотреть ссылку на соединение базы данных в модуль, который необходимо подключиться к базе данных, и задача завершена! var user = require ('./ user') (db), flight = require ('./ flight') (db);Это один из способов получить несколько модулей приложения Node.js для обмена подключениями к базе данных. Я видел это на Stackoverflow. Если у вас есть лучший способ, пожалуйста, поделитесь им с вами в комментариях!