HTML / CSSJavaScriptNode jsПаттерны проектированияПрактические

Модули

Node.js использует модульную систему. То есть вся встроенная функциональность разбита на отдельные пакеты или модули. Модуль представляет блок кода, который может использоваться повторно в других модулях.

При необходимости мы можем подключать нужные нам модули. Какие встроенные модули есть в node.js и какую функциональность они предоставляют, можно узнать из документации.

Для загрузки модулей применяется функция require(), в которую передается название модуля. К примеру, если нам необходим модуль http для создания веб сервера:

1const http = require("http");

После получения модуля мы сможем использовать весь определенный в нем функционал, который опять же можно посмотреть в документации.

Подобным образом мы можем загружать и использовать другие встроенные модули. Например, используем модуль os, который предоставляет информацию об окружении и операционной системе:

1const os = require("os");
2// получим имя текущего пользователя
3let userName = os.userInfo().username;
4console.log(userName);

Мы можем создать свои модули. Например создадим модуль getUserInfo для этого создадим файл get-user-info.js

1const os = require("os");
2const currentDate = new Date();
3
4module.exports.date = currentDate;
5
6module.exports.getUserInfo = function(){
7 return os.userInfo().username;
8}

Здесь определена переменная currentDate. Однако из вне она недоступна. Она доступна только в пределах данного модуля. Чтобы какие переменные или функции модуля были доступны, необходимо определить их в объекте module.exports. Объект module.exports - это то, что возвращает функция require() при получении модуля. Вообще объект module представляет ссылку на текущий модуль, а его свойство exports определяет все свойства и методы модуля, которые могут быть экспортированы и использованы в других модулях

В отличие от встроенных модулей для подключения своих модулей надо передать в функцию require относительный путь с именем файла (расширение файла необязательно):

Подключим и используем этот модуль в файле app.js:

1const { getUserInfo } = require("./get-user-info");
2
3getUserInfo()
Original source
Hello