JavaRush /Курсы /Модуль 4: Node.js, Next.js и Angular /Импорт стандартных и сторонних модулей в Node.js

Импорт стандартных и сторонних модулей в Node.js

Модуль 4: Node.js, Next.js и Angular
1 уровень , 9 лекция
Открыта

1. Стандартные модули Node.js: что это и зачем нужны

Node.js — не просто среда для запуска JavaScript, а целый набор инструментов для работы с файлами, сетью, процессами и многим другим. Чтобы не изобретать велосипед каждый раз, Node.js поставляется с обширной библиотекой стандартных модулей (или core modules), которые можно использовать без дополнительной установки.

Вот несколько примеров стандартных модулей:

  • os — информация о вашей операционной системе.
  • process — работа с процессом Node.js, аргументами командной строки, переменными окружения.
  • util — набор утилит для работы с объектами, форматирования, наследования и др.
  • fs — работа с файловой системой.
  • path — работа с путями к файлам и папкам.
  • http, https — создание HTTP(S)-серверов и клиентов.
  • ...и ещё десятки других!

Важный момент: стандартные модули всегда доступны, никаких зависимостей ставить не нужно.

2. Импорт стандартных модулей: синтаксис

В Node.js вы можете импортировать стандартные модули двумя способами: через require (CommonJS) или через import (ESM). В этом курсе мы используем обе схемы, но большинство стандартных модулей изначально ориентированы на CommonJS.

Пример: импорт через require

const os = require('os');
const process = require('process');
const util = require('util');

Пример: импорт через import (ESM)

import os from 'os';
import process from 'process';
import util from 'util';

Примечание: Для использования import ваш файл должен иметь расширение .mjs или в package.json должна быть указана "type": "module". Если вы не уверены — используйте require.

3. Модуль os: работа с операционной системой

Модуль os позволяет узнать много интересного о вашей системе — например, сколько у вас ядер процессора, какой у вас пользователь, какая платформа, сколько свободной памяти и т.д.

Основные методы модуля os

Метод Описание
os.platform()
Название платформы (например, 'win32', 'linux')
os.arch()
Архитектура процессора ('x64', 'arm', и т.д.)
os.cpus()
Информация о каждом ядре процессора
os.totalmem()
Всего памяти (в байтах)
os.freemem()
Свободной памяти (в байтах)
os.homedir()
Домашняя директория пользователя
os.hostname()
Имя компьютера
os.uptime()
Время работы системы (в секундах)

Пример использования os

Давайте добавим в наше приложение информацию о системе:

// system-info.js
const os = require('os');

console.log('Операционная система:', os.platform());
console.log('Архитектура процессора:', os.arch());
console.log('Имя компьютера:', os.hostname());
console.log('Домашняя папка:', os.homedir());
console.log('Свободно памяти (МБ):', Math.round(os.freemem() / 1024 / 1024));
console.log('Время работы системы (часы):', Math.round(os.uptime() / 3600));

Попробуйте запустить этот файл через node system-info.js — и посмотрите, что выведется!

4. Модуль process: управление процессом Node.js

Модуль process — это неотъемлемая часть Node.js, позволяющая работать с текущим процессом, его аргументами, переменными окружения, завершать процесс и многое другое.

Основные возможности process

  • process.argv — массив аргументов командной строки.
  • process.env — объект всех переменных окружения.
  • process.exit([код]) — завершить процесс с указанным кодом.
  • process.cwd() — текущая рабочая директория.
  • process.pid — идентификатор процесса.
  • process.memoryUsage() — информация об используемой памяти.

Пример: разбор аргументов

// args-demo.js
console.log('Аргументы командной строки:', process.argv);

// Запустите: node args-demo.js hello world
// Вывод: [ '/usr/bin/node', '/path/to/args-demo.js', 'hello', 'world' ]

Пример: переменные окружения

// env-demo.js
console.log('NODE_ENV:', process.env.NODE_ENV);

// Запустите: NODE_ENV=production node env-demo.js
// Вывод: NODE_ENV: production

Заметка: На Windows переменные окружения задаются иначе: set NODE_ENV=production && node env-demo.js

5. Модуль util: полезные утилиты

Модуль util — это кладезь для программиста, в нём есть функции для форматирования, отладки, создания наследования, преобразования callback-функций в промисы и др.

Основные функции util

Функция Описание
util.format()
Форматирует строку как в printf
util.inspect()
Строковое представление объекта для отладки
util.promisify()
Преобразует callback-функцию в функцию, возвращающую Promise
util.deprecate()
Помечает функцию как устаревшую

Пример: util.format и util.inspect

const util = require('util');

const name = 'Алиса';
const age = 21;
console.log(util.format('Имя: %s, возраст: %d', name, age)); // Имя: Алиса, возраст: 21

const obj = { foo: 'bar', baz: { a: 1, b: [2, 3] } };
console.log(util.inspect(obj, { colors: true, depth: 2 }));

Пример: util.promisify

Допустим, у нас есть функция с колбэком:

const fs = require('fs');
const util = require('util');

const readFileAsync = util.promisify(fs.readFile);

readFileAsync('package.json', 'utf-8')
  .then(data => console.log(data))
  .catch(err => console.error('Ошибка чтения файла:', err));

6. npm: установка сторонних модулей

Node.js — это не только стандартные модули, но и тысячи сторонних пакетов, которые можно легко подключить с помощью npm (Node Package Manager). Именно npm сделал Node.js таким популярным!

Как это работает

  • npm install <имя_пакета> — скачивает и добавляет пакет в папку node_modules, а также записывает его в package.json.
  • npm uninstall <имя_пакета> — удаляет пакет.
  • npm update — обновляет все пакеты.

Все сторонние пакеты хранятся в папке node_modules. Не стоит трогать её руками — npm всё сделает за вас.

7. Пример: подключаем chalk для красивого вывода

Пора добавить немного цвета в нашу жизнь (и консоль)! Для этого существует замечательный пакет chalk, который позволяет легко раскрашивать текст в терминале.

Установка chalk

Откройте терминал в папке вашего проекта и выполните:

npm install chalk

После этого в package.json появится новая зависимость, а в node_modules — папка с chalk.

Использование chalk (ESM и CommonJS)

CommonJS (Node.js по умолчанию)

// color-demo.js
const chalk = require('chalk');

console.log(chalk.green('Это зелёный текст!'));
console.log(chalk.red.bold('Ошибка!'));
console.log(chalk.bgYellow.black('Внимание!'));

ESM (если вы используете import)

// color-demo.mjs
import chalk from 'chalk';

console.log(chalk.blue('Привет, мир!'));

Пример: используем chalk для форматирования вывода о системе

Давайте доработаем наш system-info.js:

const os = require('os');
const chalk = require('chalk');

console.log(chalk.cyan('Операционная система:'), chalk.bold(os.platform()));
console.log(chalk.magenta('Архитектура:'), chalk.bold(os.arch()));
console.log(chalk.yellow('Имя компьютера:'), chalk.bold(os.hostname()));
console.log(chalk.green('Свободно памяти (МБ):'), chalk.bold(Math.round(os.freemem() / 1024 / 1024)));

Теперь ваш вывод не только информативен, но и радует глаз! Программисты — тоже люди, им приятно видеть красивые цвета.

8. Советы по использованию модулей

  • Стандартные модули всегда импортируются по имени (например, 'os', 'fs'), никакой установки не нужно.
  • Сторонние модули нужно предварительно установить через npm install.
  • Если модуль не найден — скорее всего, вы забыли его установить или указали неправильное имя.
  • Не стоит хранить node_modules в системе контроля версий (например, в git). Для этого есть файл package.json — он описывает все зависимости.
  • Если вы хотите использовать сторонний модуль в нескольких файлах — просто импортируйте его в каждом файле, где он нужен. Node.js кэширует модули, так что они не загружаются повторно.

9. Типичные ошибки при работе с модулями

Ошибка №1: забыли установить сторонний модуль
Если вы пишете const chalk = require('chalk');, а при запуске получаете ошибку "Cannot find module 'chalk'", значит, вы забыли выполнить npm install chalk.

Ошибка №2: перепутали имя модуля
Иногда опечатка в имени (require('chlak')) приводит к неочевидной ошибке. Проверьте правильность написания.

Ошибка №3: неправильный синтаксис импорта
Если вы используете import в файле .js без "type": "module" в package.json, Node.js выдаст ошибку. В этом случае используйте require.

Ошибка №4: попытка импортировать стандартный модуль через npm
Не нужно делать npm install os или npm install fs — эти модули уже встроены в Node.js.

Ошибка №5: забыли обновить зависимости
Если вы переместили проект на другой компьютер или скачали из репозитория, не забудьте выполнить npm install для установки всех зависимостей, описанных в package.json.

1
Задача
Модуль 4: Node.js, Next.js и Angular, 1 уровень, 9 лекция
Недоступна
Вывод информации об аргументах командной строки и переменных окружения
Вывод информации об аргументах командной строки и переменных окружения
1
Задача
Модуль 4: Node.js, Next.js и Angular, 1 уровень, 9 лекция
Недоступна
Использование chalk для цветного форматирования информации о системе
Использование chalk для цветного форматирования информации о системе
3
Опрос
Понятие модуля, 1 уровень, 9 лекция
Недоступен
Понятие модуля
Понятие модуля
Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ