Урок 31: Модули Node.js
Модули являются неотъемлемой частью Node.js. Они позволяют организовать код в отдельные файлы и повторно использовать его в других частях приложения. В этом уроке мы рассмотрим основные модули Node.js, а также создание и использование собственных модулей.
Основные модули Node.js
Node.js поставляется с набором встроенных модулей, которые предоставляют базовую функциональность для создания серверных приложений. Рассмотрим некоторые из них:
- fs: Модуль для работы с файловой системой. Позволяет читать, записывать, удалять файлы и директории.
- http: Модуль для создания HTTP-серверов и клиентов. Позволяет обрабатывать HTTP-запросы и ответы.
- path: Модуль для работы с путями файловой системы. Позволяет нормализовать, соединять и разбирать пути.
- os: Модуль для получения информации о операционной системе. Позволяет узнать информацию о процессорах, памяти и т.д.
Пример использования модуля fs
Рассмотрим пример чтения файла с использованием модуля fs
.
// Импорт модуля fs
const fs = require('fs');
// Чтение файла
fs.readFile('example.txt', 'utf8', (err, data) => {
if (err) {
console.error('Ошибка чтения файла:', err);
return;
}
console.log('Содержимое файла:', data);
});
// Содержимое файла: (вывод содержимого файла)
В этом примере мы используем модуль fs
для чтения файла example.txt
и вывода его содержимого в консоль.
Пример использования модуля http
Рассмотрим пример создания простого HTTP-сервера с использованием модуля http
.
// Импорт модуля http
const http = require('http');
// Создание сервера
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello, World!\n');
});
// Запуск сервера
server.listen(3000, '127.0.0.1', () => {
console.log('Сервер запущен на http://127.0.0.1:3000/');
});
// Сервер запущен на http://127.0.0.1:3000/
В этом примере мы используем модуль http
для создания простого HTTP-сервера, который отвечает текстом "Hello, World!" на все запросы.
Создание собственных модулей
Вы можете создавать собственные модули для организации и повторного использования кода. Для этого необходимо экспортировать функции, объекты или переменные из одного файла и импортировать их в другом.
Пример создания и использования собственного модуля
Рассмотрим пример создания модуля для выполнения арифметических операций.
Создание модуля arithmetic.js
// arithmetic.js
// Функция сложения
function add(a, b) {
return a + b;
}
// Функция вычитания
function subtract(a, b) {
return a - b;
}
// Экспорт функций
module.exports = {
add,
subtract
};
Использование модуля в основном файле
// main.js
// Импорт модуля arithmetic
const arithmetic = require('./arithmetic');
// Использование функций модуля
const sum = arithmetic.add(5, 3);
const difference = arithmetic.subtract(5, 3);
console.log('Сумма:', sum);
console.log('Разность:', difference);
// Сумма: 8
// Разность: 2
В этом примере мы создали модуль arithmetic.js
с функциями сложения и вычитания, экспортировали эти функции и использовали их в основном файле main.js
.
Упражнения
Упражнение 1: Использование модуля path
Создайте скрипт, который использует модуль path
для соединения пути к файлу example.txt
в директории files
и нормализации этого пути. Выведите результирующий путь в консоль.
Решение:
// Импорт модуля path
const path = require('path');
// Соединение и нормализация пути
const filePath = path.join(__dirname, 'files', 'example.txt');
const normalizedPath = path.normalize(filePath);
console.log('Нормализованный путь:', normalizedPath);
// Нормализованный путь: (результирующий путь)
Объяснение: Мы использовали модуль path
для соединения и нормализации пути к файлу example.txt
в директории files
и вывели результат в консоль.
Упражнение 2: Создание и использование собственного модуля
Создайте новый модуль calculator.js
, который экспортирует функции умножения и деления. Используйте этот модуль в основном файле main.js
для выполнения операций умножения и деления и вывода результатов в консоль.
Решение:
// calculator.js
// Функция умножения
function multiply(a, b) {
return a * b;
}
// Функция деления
function divide(a, b) {
if (b === 0) {
throw new Error('Деление на ноль');
}
return a / b;
}
// Экспорт функций
module.exports = {
multiply,
divide
};
// main.js
// Импорт модуля calculator
const calculator = require('./calculator');
// Использование функций модуля
const product = calculator.multiply(5, 3);
const quotient = calculator.divide(10, 2);
console.log('Произведение:', product);
console.log('Частное:', quotient);
// Произведение: 15
// Частное: 5
Объяснение: Мы создали модуль calculator.js
с функциями умножения и деления, экспортировали эти функции и использовали их в основном файле main.js
для выполнения арифметических операций и вывода результатов в консоль.