Как стать автором
Обновить

Комментарии 7

Вы уж извините, но совсем для малышей.
ни чего удивительно, в духа Хабра-туториала
Тогда не помешало бы рассказать о том, что можно использовать не весь модуль, а лишь некоторые его функции, например:

Существует моудль math.js:
exports.add = function() {
    var sum = 0, i = 0, args = arguments, l = args.length;
    while (i < l) {
        sum += args[i++];
    }
    return sum;
};

И какой-нибудь код, который использует функцию add из этого модуля
var add = require('math').add;
exports.increment = function(val) {
    return add(val, 1);
};

В данном примере мы видим, что переменной add идет присвоение функции add из модуля math
Какой в этом смысл? При вызове require модуль в любом случае обрабатывается целиком и кешируется для всех последующих вызовов.
Позвольте ответить вопросом на вопрос: а какой смысл работать с объектом, в котором находится N функций, если вам нужна только одна?
Так что из любого модуля можно узнать или данный модуль был запущен напрямую или он был подключен как зависимость другого модуля.

Приведите пожалуйста пример кода.
if (require.main === module) {
    // Модуль вызван напрямую
} else {
    // require.main не ссылается на данный модуль, значит 
    // данный модуль был подключен с помощью require() в require.main
    // или другом модуле, которых был подключен в require.main
}
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации