2

node_modulesの依存関係は、アプリケーションコードの開始時にグローバルに宣言する必要がありますか、それとも必要な時点でローカルに宣言する必要がありますか?ベストプラクティスがあるかどうか疑問に思います。

たとえば、を使用してアプリケーションをブートストラップし、index.js必要なときにスクリプトを要求します。security.jsたとえば、私のモジュールでは。を使用する必要がありますnode_hash。さて、私はそれsecurity.js

var node_hash = require('node_hash')

またはグローバルにそれを必要としてindex.jsいるので、security.js(他のすべてのものも)利用できますか?

4

1 に答える 1

2

Node には、「グローバルに要求する」という概念は実際にはありません。モジュールを別のモジュールに要求する場合、要求されたモジュールは、それを要求したモジュールでのみ使用できます。その必要なモジュールを別の場所で使用したい場合は、それを再度必要とする必要があります (または、返されたオブジェクトを何らかの方法で他のモジュールに渡します)。

したがって、正しい (唯一の、本当に) 答えは、必要に応じてそれらを要求することです。Node はrequire cacheを使用するため、required モジュールは実際には一度しか評価されず、同じファイルの複数の require に対して同じオブジェクトが返されることに注意してください。

var[編集] スコープに割り当てずに宣言された変数に割り当てます (たとえば、Nodeglobal経由でアクセスできます)。globalこれを行いたいと思うことはめったにありません。変数が宣言された場所を特定するのが難しくなるだけでなく、名前空間の問題が発生する可能性もあります。

于 2012-05-06T23:08:19.913 に答える