Skip to main content

Що таке process?

1. Що таке process

process - це об'єкт, наданий Node.js, який описує поточний процес виконання JavaScript-коду в середовищі Node.js.

Він доступний будь-де у програмі, без потреби імпортувати:

javascript
console.log(process);

Аналог в інших мовах:

  • у Python - sys + os;
  • у C - getpid(), argv, exit() тощо.

2. Основні можливості process

КатегоріяЩо робить
Інформація про процесPID, версія Node.js, архітектура, платформа
Змінні середовищаprocess.env
Аргументи запускуprocess.argv
Стандартні потокиprocess.stdin, process.stdout, process.stderr
Завершення процесуprocess.exit()
Події життєвого циклуbeforeExit, exit, uncaughtException, SIGINT
Робота з ресурсамиПам'ять, CPU, uptime, поточний каталог
Прапорці та опції Node.jsprocess.execPath, process.execArgv

3. Основні властивості та методи process

process.pid

→ ID поточного процесу (Process ID)

javascript
console.log(process.pid); // наприклад, 9342

process.version

→ Версія Node.js

javascript
console.log(process.version); // v22.8.0

process.platform

→ На якій платформі запущено Node.js

javascript
console.log(process.platform); // 'win32' | 'linux' | 'darwin'

process.arch

→ Архітектура процесора

javascript
console.log(process.arch); // 'x64', 'arm64', 'ia32' тощо

process.cwd()

→ Поточна робоча директорія

javascript
console.log(process.cwd()); // /Users/tim/projects/app

process.env

→ Об'єкт усіх змінних середовища

javascript
console.log(process.env.NODE_ENV); // 'production' console.log(process.env.PATH); // системний PATH

Використовується для конфігурації:

javascript
if (process.env.NODE_ENV === 'production') { console.log('Запущено в продакшені'); }

process.argv

→ Аргументи командного рядка, з якими запущено Node.js

javascript
node app.js dev 8080
javascript
console.log(process.argv); // [ '/usr/local/bin/node', '/path/to/app.js', 'dev', '8080' ]

Часто використовується для CLI-інструментів.

process.memoryUsage()

→ Показує, скільки пам'яті споживає застосунок

javascript
console.log(process.memoryUsage()); /* { rss: 24576000, heapTotal: 5464064, heapUsed: 3661728, external: 8704 } */

process.uptime()

→ Час (у секундах) з моменту запуску процесу

javascript
console.log(process.uptime()); // 5.312

process.exit([code])

→ Завершує виконання процесу

javascript
process.exit(0); // нормальне завершення process.exit(1); // завершення з помилкою

Код 0 = успішно, не 0 = помилка (наприклад, використовується в CI/CD чи shell-скриптах).

process.on(event, handler)

→ Підписка на події процесу

Приклади:

При завершенні програми:

javascript
process.on('exit', (code) => { console.log('Завершення з кодом:', code); });

Необроблена помилка:

javascript
process.on('uncaughtException', (err) => { console.error('Необроблена помилка:', err); });

При натисканні Ctrl+C:

javascript
process.on('SIGINT', () => { console.log('Процес перервано користувачем'); process.exit(); });

process.stdin, process.stdout, process.stderr

→ Потоки введення/виведення

javascript
process.stdout.write('Введіть ім'я: '); process.stdin.on('data', (data) => { console.log(`Привіт, ${data.toString().trim()}!`); });

Це базовий спосіб працювати з консоллю без зовнішніх бібліотек.

4. Приклад використання в реальному Node.js-застосунку

javascript
console.log(`Запущено з PID: ${process.pid}`); console.log(`ОС: ${process.platform}`); console.log(`Node.js: ${process.version}`); console.log(`Пам'ять: ${(process.memoryUsage().heapUsed / 1024 / 1024).toFixed(2)} MB`); process.on('exit', (code) => { console.log(`Процес завершено з кодом ${code}`); }); setTimeout(() => { console.log('Вихід через 2 секунди...'); process.exit(0); }, 2000);

5. Чому process важливий

  • Дозволяє взаємодіяти з операційною системою;
  • керує середовищем і конфігурацією (через env);
  • дає доступ до CLI-параметрів;
  • керує потоками введення-виведення;
  • дозволяє відловлювати помилки й коректно завершувати процес.

6. Часті сценарії застосування

СценарійВикористовується
Конфігурація середовищаprocess.env.NODE_ENV
CLI-застосункиprocess.argv
Налагодження й логуванняprocess.memoryUsage(), process.uptime()
Завершення процесуprocess.exit()
Обробка помилокprocess.on('uncaughtException', handler)
Грейсфул-шатдаун (graceful shutdown)process.on('SIGINT', cleanup)

7. Коротке резюме

Властивість / МетодПризначення
process.pidID процесу
process.platformПлатформа ОС
process.envЗмінні середовища
process.argvАргументи запуску
process.cwd()Поточна директорія
process.memoryUsage()Використання пам'яті
process.uptime()Час роботи процесу
process.exit([code])Завершення роботи
process.on(event, cb)Підписка на події процесу
process.stdin / stdout / stderrПотоки введення-виведення

Одним реченням:

process - це глобальний об'єкт Node.js, який дає доступ до інформації про запущений процес, змінних середовища, аргументів командного рядка, потоків введення/виведення й керування завершенням програми.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.