Меню

Загрузка модулей в NodeJS

30.06.2018 - Back-end, NodeJS

Loading modules (Загрузка модулей)

Для загрузки модулей мы воспользуемся функцией require. Эта функция работает только в node, она не доступна из браузеров. Она принимает один аргумент. Имя или путь до модуля, который мы хотим загрузить. Допустим мы хотим загрузить наш модуль logger.js и мы видим, что наш app.js и logger.js находятся в одной папке. Поэтому укажем сначала ./ — что означает текущую директорию. А затем укажем сам модуль — logger.js. Мы можем указать его не указывая расширение.

require('./logger');

Функция require возращает объект, который экспортируется из запрашиваемого модуля.
Давайте передадим наш модули в переменную и посмотрим на неё.

const logger = require('./logger');
//{ log: [Function: log] }

Мы получили объект, который содержит один метод, под названием log{ log: [Function: log] }. Итак, мы можем вызвать этот метод из модуля app.js.

logger.log('message');

В ES6 уже появились константы, и считается хорошей практикой при импорте модулей сохранять их в константах.

Еще, иногда, вместо того, чтобы экспортировать объект из модуля, мы хотим экспортировать только одну функцию. Например в нашем модуле logger нам не нужно экспортировать целый объект, т.к. у нас только одна функция. Объект очень полезен, если у нас есть на экспорт несколько функций или переменных. В нашем случае, мы можем экспортировать функцию сразу в exports

module.exports = log;

Теперь в нашем модуле app, logger — это не объект, а функция, которую мы можем использовать напряму.

const logger = require('./logger');
logger('message');
Метки: , ,

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *