1

ノードに外部ファイルをロードすることに関して質問があります。

基本的に、いくつかの構成を含む外部 JSON ファイルをロードしています。このファイルは、10 分ごとに外部プロセスによって変更されます。ノードを再起動せずに、このファイルを 10 分ごとにリロードするにはどうすればよいですか?

私はこの解決策を試しました:

delete require.cache['/home/conf/myfile.json']

しかし、反対する人もいます。誰でも私を助けることができますか?

4

3 に答える 3

4

最後にコードを変更し、require を使用する代わりに fs.readFile を使用して json ファイルをロードするようになりました。

次に、node-watchを使用してファイルの変更を確認し、再読み込みしました。

于 2013-10-07T21:44:48.830 に答える
2

カップルのオプション。setIntervalを 10 分間使用して、コールバックでファイルを読み取ることができます。それ以外の場合は、fs.watchを使用して、ファイルが実際に変更されたときにリロードをトリガーできます。

コメントに基づいて更新

require を使用している場合、必要な回数に関係なく、ファイルは 1 回だけ読み込まれ、必要なファイルを無効にするメカニズムは実際にはありません。機能のラッパーを作成し、代わりにそれを要求することができます。ラッパーは必要なファイルであり、現在の構成を返す関数を公開します。そのモジュール内で、上記の setTimeout refresh を作成できます。

于 2013-10-07T20:59:21.997 に答える