座敷牢日誌

都落ちした元SEがソフトウェアやネット関連のことを書いています

Pythonでいう「__main__」をNode.jsで実現する

Pythonでスクリプトファイルが直接実行された場合にだけ動かしたいコードがある場合、 次のように記述する。

if __name__ == '__main__':
    print('main module')

if文のブロックはファイルが直接実行された場合にだけ読み込まれ、他のスクリプトか らインポートされた場合には動かなくなる。テストや動作確認用のコードを書くときに よく使われる方法かと思う。

同じことをNode.jsでやるならどうしたらいいのか調べてみた。

stackoverflow にあるトピックスによると、次のように記述するといいらしい。

if(require.main === module) {
  cocnsole.log('main module');
}

または、これでもOK。

if(!module.parent) {
  console.log('main module');
}