Перейти к содержанию

Начало урока

Модули и npm

Раздели код на части, а потом заимствуй код, который написал весь мир

Главная идея: Модуль — это файл с кодом, который можно переиспользовать. Вместо одного огромного файла ты разбиваешь программу на маленькие файлы, которые обмениваются кодом через require/module.exports (или import/export). А npm позволяет скачивать готовые модули, написанные другими людьми, чтобы не делать всё самому.
К концу урока ты сможешь:
  • разбивать код на файлы с помощью module.exports и require,
  • использовать современный стиль import / export,
  • создавать package.json и устанавливать пакеты через npm install.

1. Что такое модуль?

В Node.js каждый файл — это модуль. Модуль держит свой код закрытым, пока сам не решит что-то экспортировать. Тогда другой файл сможет подключить (импортировать) то, что было экспортировано.

Аналогия: представь ящик с инструментами. В каждом отделении (модуле) лежит несколько инструментов. Когда что-то строишь, ты открываешь только нужные отделения, а не вываливаешь все инструменты на пол сразу. Модули держат проект в порядке: каждый файл хорошо делает одно дело.

Разбиение кода на модули облегчает чтение, переиспользование и исправление. Файл в 20 строк намного дружелюбнее, чем файл в 2000 строк.

2. Экспорт и подключение (CommonJS)

Классический стиль Node называется CommonJS. Ты делишься кодом, помещая его в module.exports, и подключаешь его через require(). Локальные файлы указываются путём, который начинается с ./ (текущая папка).

Сначала модуль, который экспортирует две функции:

// math.js  — a module that exports two helpers
function add(a, b) {
  return a + b;
}
function subtract(a, b) {
  return a - b;
}
module.exports = { add, subtract };

Теперь другой файл его использует. require('./math') возвращает ровно тот объект, который мы экспортировали:

// app.js  — uses the math module
const math = require('./math');
console.log(math.add(2, 3));        // 5
console.log(math.subtract(10, 4));  // 6

Запусти в терминале — увидишь:

$ node app.js
5
6

Можно также экспортировать одно значение напрямую, заменив весь module.exports:

// greet.js  — exports ONE thing directly
module.exports = function greet(name) {
  return 'Hello, ' + name + '!';
};
// app.js
const greet = require('./greet');
console.log(greet('Sara'));   // Hello, Sara!

Обрати внимание: в require('./greet') ты не пишешь .js — Node добавит его сам.

Продолжите этот урок на YourAIZone

В полном уроке — объяснение целиком, разобранные примеры, частые ошибки, тесты с мгновенной проверкой и ИИ-репетитор. Начните сразу как гость или создайте аккаунт, чтобы сохранять прогресс.

В полном уроке

  • Объяснение целиком
  • Разобранные примеры
  • Частые ошибки и как их избежать
  • Тестовые вопросы: 15
  • ИИ-репетитор, который отвечает на вопросы по теме
  • Отслеживание прогресса для ученика, родителей и учителя