it-swarm-ru.tech

node.js эквивалент python, если __name__ == '__main__'

Я хотел бы проверить, включен ли мой модуль или запущен напрямую. Как я могу сделать это в node.js?

245
nornagon

Документы описывают другой способ сделать это, который может быть предпочтительным методом:

Когда файл запускается непосредственно из Node, require.main устанавливается на его модуль.

Чтобы воспользоваться этим, проверьте, является ли этот модуль основным модулем, и, если так, назовите ваш основной код:

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

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

Правка: Если вы используете этот код в браузере, вы получите "Ошибка ссылки", так как "требуется" не определен. Чтобы предотвратить это, используйте:

if (typeof require != 'undefined' && require.main==module) {
    fnName();
}
337
Stephen Emslie
if (!module.parent) {
  // this is the main module
} else {
  // we were require()d from somewhere else
}

Правка: Если вы используете этот код в браузере, вы получите "Ошибка ссылки", так как "модуль" не определен. Чтобы предотвратить это, используйте:

if (typeof module != 'undefined' && !module.parent) {
  // this is the main module
} else {
  // we were require()d from somewhere else or from a browser
}
59
nornagon