Всем привет! В этом материале рассмотрим, что такое модули в NodeJS и зачем они нужны .

NodeJS. Модули.

Всем привет! В этом материале рассмотрим, что такое модули в NodeJS и зачем они нужны.

Когда мы пишем какое-то приложение, мы обычно не пишем весь код в одном файле, а разбиваем его на несколько файлов, создавая тем самым модульную структуру.

Давайте создадим на сервере папку с названием, например, NodeJS, а в ней у нас будет файлик app.js – главный файл нашего проекта.

Теперь создадим отдельный модуль – файл count.js. В нем напишем функцию, которая будет принимать массив в качестве аргумента и выводить нам, сколько в нем содержится элементов.

var counter = function(arr) {
  return "В массиве содержится " + arr.length + "элемента";
};

Что, если мы теперь хотим использовать эту функцию в другом файле, например, в app.js? Для этого нам сначала нужно подключить наш модуль, используя функцию require(), которая является глобальной, а это значит, что мы можем использовать ее везде, где нам нужно.

app.js

require('./count');

Таким образом мы подключили наш модуль count.js в наш главный файл. Заметьте, что писать расширение не нужно.

Однако, если вы сейчас попытаетесь запустить нашу функцию в файле app.js, то получите ошибку. Дело в том, что код функции не доступен за пределами модуля count.js, даже несмотря на то, что мы подключили его с помощью функции require().

Чтобы все заработало, нам нужно сообщить в файле модуля, какой функционал мы хотим иметь за его пределами. Делается это вот так:

module.exports = counter;

module.exports – это массив, который будет возвращен функцией require(), поэтому давайте присвоим его какой-нибудь переменной.

app.js

var counter = require('./count');

Теперь, если вы запустите функцию в файле app.js, то все будет работать прекрасно:

console.log(counter(['first element', 'second element', 'third element']));

Итак, на этом сегодня все. Спасибо за внимание!