1

Node.js では、一部のモジュールがオブジェクトをエクスポートします

var Constructor = function() {};
exports.MyObject = new Constructor();
// or
module.exports = new Constructor();

一部のモジュールは関数をエクスポートします。

var Constructor = function() {};
exports.MyConstructor = Constructor;
// or
module.exports = Constructor;

いつオブジェクトをエクスポートし、いつ関数をエクスポートする必要がありますか?

4

1 に答える 1

0

1 つの考慮事項は、Module モジュールのキャッシュ機能です。ドキュメントから; 私の強調:

モジュールは、最初にロードされた後にキャッシュされます。これは、require('foo') へのすべての呼び出しが、同じファイルに解決される場合、まったく同じオブジェクトが返されることを (とりわけ) 意味します。

require('foo') を複数回呼び出しても、モジュール コードが複数回実行されることはありません。これは重要な機能です。これにより、「部分的に完了した」オブジェクトを返すことができるため、サイクルが発生する場合でも推移的な依存関係をロードできます。

モジュールでコードを複数回実行する場合は、関数をエクスポートして、その関数を呼び出します。

于 2013-06-28T19:39:37.427 に答える