これはNodeJSのシングルトンとして機能するのはなぜですか。どのように機能しますか?本質的にはNodeJSでこれがシングルトンとして動作する理由
const io = require('socket.io')();
const singleton = module.exports = io;
私は複数回、このファイルをインポートする場合は、私が最初にインスタンス化socket.io
のインスタンスを取得します。
これはNodeJSのシングルトンとして機能するのはなぜですか。どのように機能しますか?本質的にはNodeJSでこれがシングルトンとして動作する理由
const io = require('socket.io')();
const singleton = module.exports = io;
私は複数回、このファイルをインポートする場合は、私が最初にインスタンス化socket.io
のインスタンスを取得します。
モジュールはノードごとにキャッシュされます。インスタンスを返すので、require
このファイルを取得するたびに同じインスタンス(io
)が返されます。ライン
const io = require('socket.io')();
は、このモジュールが初めて必要なときにのみ実行されます。その後、このモジュールを必要とするモジュールは返されたインスタンスのみを取得します。ここで
は、キャッシングの公式ドキュメントです:https://nodejs.org/api/modules.html#modules_caching
このコードの 'const singleton ='の部分は実際には関係ありませんか? –
本当にそうではありません。これを削除することができ、この例でも同じように動作します。 –
は、私はあなたのために明確にすることができます何かはありますか? –