Команда require в Node.js
Если мы хотим добавить скрипт на страницу в веб-браузере, мы используем, к примеру, тег:
В Node.js для этой цели существует специальная команда: «require». Работает она совсем иначе, поэтому рассмотрим пример.
Создадим отдельный файл для псевдокласса «User» и переместим User’а из «server.js» в «user.js». Для удобства расположим его в отдельной колонке.
Теперь, чтобы из одного файла подключить другой файл, воспользуемся следующей командой:
Мы можем либо указывать расширение «.js», либо нет. Но чтобы проконтролировать выполнение данной команды, давайте добавим в «user.js»:
И запустим:
По всей видимости, что-то пошло не так и возникла ошибка. Дело в том, что Node.js не находит переменную User, так как она не определена.
Таким образом, мы можем наблюдать существенное отличие системы Node.js-модулей от веб-браузерных скриптов. В браузере, когда на странице находятся 2 тега скрипт (то есть 2 скрипта), функция, определенная на глобальном уровне в одном из скриптов, доступна и в другом, в то время как в Node.js дело обстоит иначе. В Node.js каждый модуль (каждый файл) способен определять в себе любые функции/любые переменные. И эти функции/переменные считаются глобальными для этого файла, то есть они не будут доступны при подключении автоматически. И это, на самом деле, очень хорошо, ведь появляется возможность писать по-настоящему независимые модули, не опасаясь при этом, что в одном модуле будут перезаписаны глобальные переменные другого.
По материалам http://imnotgenius.com/.