os и process

Тема дорожной карты · Node.js

Модули os и process — два наиболее важных встроенных модуля среды выполнения Node.js, предоставляющих доступ к информации об операционной системе и текущей среде процесса соответственно. Модуль os предоставляет функции os.cpus(), os.freemem(), os.totalmem() и os.platform(), широко используемые для планирования ёмкости, мониторинга производительности и обеспечения различного поведения приложения Node.js в Linux, macOS и Windows. Модуль process — это глобальный объект в Node.js, предоставляющий доступ к process.env для чтения переменных окружения, process.argv для разбора аргументов командной строки, process.exit() для корректного завершения работы, process.pid для ID текущего процесса и process.nextTick() для откладывания работы до следующей итерации цикла событий. В TypeScript-проектах значения process.env по умолчанию являются нетипизированными строками, поэтому определение типизированного конфигурационного модуля, валидирующего и преобразующего переменные окружения при запуске, является лучшей практикой серверной разработки. Вместе os и process являются фундаментом для написания переносимых, готовых к продакшну серверных сервисов Node.js.

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

os и process идёт с runtime — без установки. Основные: fs (файловая система, sync и promise API), path (кросс-платформенная сборка путей), http/https (серверы и клиенты), crypto (хеширование, шифры, randomBytes), os (системная информация), events (базовый EventEmitter), child_process (spawn/fork), stream (readable/writable), url, querystring, util, assert. У большинства есть callback и node:-prefixed promise-альтернатива в современных версиях.

Когда применять

Сначала core-модули, потом зависимость — они закрывают большинство задач без supply-chain риска. fs/promises покрывает 90% file I/O; crypto.randomUUID() делает uuid-библиотеки ненужными; URL (WHATWG) заменяет url.parse(). Префикс node: (require("node:fs")) для ясности в ESM. Promise API лучше callback в новом коде; legacy callback всё ещё нужен для streams.

Типичные ошибки

Ловушки os и process: sync fs (readFileSync) в обработчиках запросов (блокирует event loop); конкатенация строк вместо path.join (Windows-backslash); Math.random() для криптографии (нужен crypto.randomBytes); не пробрасывают AbortSignal — HTTP-клиенты текут после отмены. Прочтите Node API docs страницу за страницей — половина мыслей "не хватает библиотеки" исчезает.

Связанные понятия

Полезные ресурсы