2016-03-19 25 views
0

ここでは、より明確にするためのサンプルコードを示します。すぐに呼び出された関数式が2回目の要求で実行されない

これは私のモジュールです:

module.exports = ((parameter) => { 
    console.log(parameter); 
})('some value'); 

mymoduleは、実際には、メインサーバのファイルであるため、すぐに実行する必要があります。

テストスイートのユニットテストでは自分のモジュールが必要ですが、直ちに呼び出される関数式は初めて実行されます。

require('./mymodule'); 
require('./mymodule'); 

これを毎回実行するにはどうすればよいですか? nodejsドキュメントから

答えて

1

あなたはノードが保持キャッシュを無効にすることができます

require('./mymodule'); 
delete require.cache[require.resolve('./mymodule')] 
require('./mymodule'); 

あなたが代わりに結果だけをエクスポートするの、おそらく機能をエクスポートし、必要なときにそれを呼び出すといえほうが良いです。

1

複数のコールが(「foo」を)を必要とするモジュールコードが 実行複数倍に生じないかもしれません。これは重要な機能です。それによって、 "部分的に完了した"オブジェクトを返すことができるため、サイクルの原因となるときでも、推移的な 依存関係がロードされます。

https://nodejs.org/docs/v0.4.12/api/modules.html#caching

あなたはモジュールの関数をエクスポートし、その関数を呼び出して、コードを複数回実行したい場合。

関連する問題