2017-02-01 7 views
0

express4では、dbインスタンスをapp.localsに格納するか、app.setを使用して格納するのが悪いことでしょうか?私はそれについて考えていたので、私はそれが私のアプリの中でそれを必要とするので、アクセスする方が簡単になります。Express4:dbインスタンスの保存

答えて

3

は、それだけで正常に動作する必要がありますし、いや、私はそれが悪い習慣(少なくともない恐ろしい)だとは思わない - 結局のところ、app.localsがあなたのグローバル値を置くために安全な場所を提供することを意図しています。

ただし、Expressを使用してこのようなその他のグローバル値を格納すると、アプリケーションがExpressに緊密にバインドされます。 Expressを削除して別のものに置き換えることを決定した場合は、コード内に散在しているapp.localへの参照をすべて検索して変更する必要があります。

これを避けたい場合、単純なパターンの1つは、必要な値をエクスポートするモジュールを作成することです。これにより、関連するコードをすべて1か所にまとめ、必要なときにインポートすることができます。例:次に

// 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をインポートします。

関連する問題