В express4, неудобно хранить экземпляр db в app.locals или хранить его с помощью app.set? Потому что я думал об этом, так как он мне понадобится в моем приложении, будет легче получить доступ.Экспресс4: Хранение экземпляра db
ответ
Он должен работать нормально, и нет, я не думаю, что это плохая практика (по крайней мере, не ужасно) - в конце концов, app.locals
призван обеспечить вам безопасное место, чтобы поместить свои глобальные ценности.
Однако использование Express для хранения разных глобальных значений, подобных этому, приводит к тому, что ваше приложение тесно связано с Express. Если вы когда-нибудь решите, что хотите удалить Express и заменить его чем-то другим, вам придется выследить и изменить все эти ссылки на app.local
, которые теперь разбросаны по всему вашему коду.
Если вы хотите этого избежать, один простой шаблон - создать модуль, экспортирующий требуемое значение - это позволит вам сохранить все связанный код в одном месте и импортировать его, когда вам это нужно. Например:
// modules/database.js
// initialize the database
const db = initializeDatabase();
// export a "getter" for the database instance
export const get =() => db;
Затем, когда вы хотите использовать экземпляр базы данных:
// index.js
// import the database "getter"
import { get } from './modules/database';
// perform a query
const rows = get().query('SELECT * FROM table');
Просто импортировать modules/database
в любом месте вы хотите использовать базу данных.
- 1. Хранение экземпляра абстрактного объекта
- 2. Хранение хранителей в DB
- 3. Хранение строк подключения db
- 4. Хранение нового экземпляра в потоке
- 5. Хранение ресурсов каждого экземпляра класса?
- 6. Хранение текстового текста в db?
- 7. Хранение Sqlite DB в RoamingFolder
- 8. Предотвратить хранение неиспользуемого соединения DB
- 9. Хранение данных в Mongo DB
- 10. eXist-db Обновление экземпляра экземпляра XForms POST
- 11. Хранение OperationContext.Current в переменной экземпляра экземпляра службы WCF
- 12. Хранение функции Javascript из переменной экземпляра Java
- 13. Хранение нескольких файлов для каждого экземпляра модели
- 14. Хранение экземпляра инжектора для использования в компонентах
- 15. Хранение экземпляра Координаты из другого ключевого кадра
- 16. Хранение экземпляра объекта, созданного под AppDomain
- 17. Хранение сессий в db в rails
- 18. Хранение ассоциативного массива в MySQL DB
- 19. Хранение индексированных данных DB на SD-карте
- 20. Хранение форматированной переменной в MySQL DB?
- 21. Хранение нескольких целых чисел в DB Berkeley
- 22. хранение рабочего времени в Parse DB
- 23. DB Design Question - Хранение международных имен людей
- 24. Хранение индекса Lucene в Cassandra DB
- 25. Хранение записи для IP-адреса (DB Alternative)
- 26. Хранение связей DB в переменной ресурса весной
- 27. GORM Golang: цель клонирования DB-экземпляра
- 28. Колба-SQLAlchemy использованием глобального экземпляра DB
- 29. Завершение работы экземпляра DB в непостоянном состоянии
- 30. Redis: используя два экземпляра или только один (кеширование и хранение)?