Встроенные модули Node

Node приходит с «батарейками» — набором готовых встроенных модулей.

Встроенные (core) модули — это библиотеки, которые поставляются вместе с Node. Их не нужно устанавливать через npm — достаточно подключить через require или import.

Что это и чем отличается от пакетов

Встроенные модули уже внутри Node. Когда вы пишете require("fs") без ./ в начале и без установки — Node понимает, что вы хотите именно core-модуль, а не файл и не пакет из node_modules.

const fs = require("fs");       // файловая система
const path = require("path");   // работа с путями
const http = require("http");   // веб-сервер
const os = require("os");       // информация о системе

Никакого npm install для этого не требуется — модули уже есть.

Самые полезные встроенные модули

МодульЗачем
fsчтение и запись файлов
pathсклейка и разбор путей к файлам
http / httpsсоздание веб-серверов и запросов
osсведения об ОС: память, ядра, имя ОС
cryptoхеши, шифрование, случайные данные
urlразбор и сборка URL
eventsсистема событий (EventEmitter)

Пример: модуль os

Модуль os рассказывает о машине, на которой запущена программа:

const os = require("os");

console.log("Платформа:", os.platform());      // 'darwin' / 'win32' / 'linux'
console.log("Ядер CPU:", os.cpus().length);    // напр. 8
console.log("Свободно памяти:", os.freemem());  // в байтах
console.log("Имя пользователя:", os.userInfo().username);

Этот код использует Node-API, поэтому в браузере он не запустится — но в терминале выдаст реальные данные о вашей системе.

Префикс node:

В современном Node встроенные модули можно подключать с явным префиксом node:. Это делает намерение очевидным и защищает от случайного конфликта с пакетом из npm с тем же именем:

import { readFile } from "node:fs/promises";
import path from "node:path";

Логика без модулей всё равно чистый JS

Многие задачи решаются стандартным JavaScript, без core-модулей. Например, разбор пути к файлу — это работа со строкой:

const filePath = "src/utils/helpers.js";

const parts = filePath.split("/");
const fileName = parts[parts.length - 1];
const ext = fileName.split(".").pop();

console.log("Файл:", fileName);
console.log("Расширение:", ext);
console.log("Папок в пути:", parts.length - 1);

Вывод:

Файл: helpers.js
Расширение: js
Папок в пути: 2

На практике для путей всё же берут модуль path — он учитывает разницу между Windows (\) и Unix (/). Но суть операции — обычная работа со строками.

Итог

  • Встроенные (core) модули идут вместе с Node — устанавливать не нужно.
  • Подключают по имени без ./: require("fs"), require("path").
  • Ключевые модули: fs, path, http, os, crypto, events.
  • Префикс node: делает импорт core-модуля явным и безопасным.
Проверьте себя
1. Нужно ли устанавливать встроенный модуль fs через npm?
AДа, обязательно
BНет, он поставляется вместе с Node
CТолько на Windows
DТолько в production
2. Какой модуль отвечает за работу с путями к файлам?
Afs
Bpath
Curl
Dos
3. Зачем подключать core-модуль с префиксом node: (например node:fs)?
AЭто ускоряет загрузку
BЧтобы явно указать core-модуль и избежать конфликта с npm-пакетом
CИначе модуль не найдётся
DПрефикс обязателен всегда
Поддержать проект