1

いくつかの変数を構造化するための最良の方法を理解しようとしています。たとえば、私のNode.js Expressアプリでは、次のようになっていますapp.js

var poolModule = require('generic-pool');
global.pools = {
 /* ... */
};

poolsMySQLとRedisのプールを追跡する私のグローバル変数はどこにありますか。また、実際のRedisオブジェクトとMySQLオブジェクト(およびおそらくconfigs変数)でも同じことができるかどうか疑問に思っているので、アプリ全体でそれらを要求する必要はありません。そして、それらが最も使用されることになるので。

これは悪い習慣ですか?もしそうなら、この種のコードを構造化するためのより良い方法は何ですか?

編集:追加global.

4

2 に答える 2

1

ファイルが必要な場合、実際には常に同じオブジェクトが必要です。つまり、次のことができるということです。

module.exports = {
  // same object for everybody that requires me
};
于 2012-11-11T23:53:50.520 に答える
1

module.exportsあなたは正しい考えを持っていますが、オブジェクトをモジュールとしてエクスポートするために使用したいと考えています。CommonJSのアプローチは、モジュール内にローカル変数を持ち、モジュール外で使用するために変数をエクスポートすることです。このようにして、モジュールはを使用して互いの変数にアクセスできますrequire。これらの変数は実際には「グローバル」ではありませんが、ある意味ではC++の「フレンド」クラスに似ています。実際、poolModuleに変数を格納するだけでなく、メソッドやその他の機能をそこに配置して、アプリケーション全体で再利用できるようにすることもできます。

于 2012-11-12T00:28:55.640 に答える