2017-02-01 5 views

ответ

3

Он должен работать нормально, и нет, я не думаю, что это плохая практика (по крайней мере, не ужасно) - в конце концов, 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 в любом месте вы хотите использовать базу данных.

Смежные вопросы