Модули и npm
Раздели код на части, а потом заимствуй код, который написал весь мир
require/module.exports (или import/export). А npm позволяет скачивать готовые модули, написанные другими людьми, чтобы не делать всё самому.
- разбивать код на файлы с помощью
module.exportsиrequire, - использовать современный стиль
import/export, - создавать
package.jsonи устанавливать пакеты черезnpm install.
1. Что такое модуль?
В Node.js каждый файл — это модуль. Модуль держит свой код закрытым, пока сам не решит что-то экспортировать. Тогда другой файл сможет подключить (импортировать) то, что было экспортировано.
Аналогия: представь ящик с инструментами. В каждом отделении (модуле) лежит несколько инструментов. Когда что-то строишь, ты открываешь только нужные отделения, а не вываливаешь все инструменты на пол сразу. Модули держат проект в порядке: каждый файл хорошо делает одно дело.
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 добавит его сам.