1. ホーム
  2. node.js

[解決済み】pythonのif __name__ == '__main__' に相当するnode.js [重複]です。]

2022-03-27 13:49:21

質問

自分のモジュールがインクルードされているか、直接実行されているかをチェックしたいのですが。node.jsでこれを行うにはどうしたらよいでしょうか?

どのように解決するのですか?

ドキュメント には別の方法が記載されており、そちらの方が望ましいかもしれません。

<ブロッククオート

Nodeから直接ファイルを実行すると、require.mainにそのモジュールが設定されます。

これを利用するには、このモジュールがメインモジュールであるかどうかを確認し、もしそうなら、メインのコードを呼び出すようにします。

var fnName = function() {
    // main code
}

if (require.main === module) {
    fnName();
}

EDIT: このコードをブラウザで使用すると、"require" が定義されていないため、"Reference error" が表示されるでしょう。これを防ぐには、以下を使用します。

if (typeof require !== 'undefined' && require.main === module) {
    fnName();
}