Що таке process?
1. Що таке process
process- це об'єкт, наданий Node.js, який описує поточний процес виконання JavaScript-коду в середовищі Node.js.
Він доступний будь-де у програмі, без потреби імпортувати:
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.js | process.execPath, process.execArgv |
3. Основні властивості та методи process
process.pid
→ ID поточного процесу (Process ID)
console.log(process.pid); // наприклад, 9342process.version
→ Версія Node.js
console.log(process.version); // v22.8.0process.platform
→ На якій платформі запущено Node.js
console.log(process.platform); // 'win32' | 'linux' | 'darwin'process.arch
→ Архітектура процесора
console.log(process.arch); // 'x64', 'arm64', 'ia32' тощоprocess.cwd()
→ Поточна робоча директорія
console.log(process.cwd()); // /Users/tim/projects/appprocess.env
→ Об'єкт усіх змінних середовища
console.log(process.env.NODE_ENV); // 'production'
console.log(process.env.PATH); // системний PATHВикористовується для конфігурації:
if (process.env.NODE_ENV === 'production') {
console.log('Запущено в продакшені');
}process.argv
→ Аргументи командного рядка, з якими запущено Node.js
node app.js dev 8080console.log(process.argv);
// [ '/usr/local/bin/node', '/path/to/app.js', 'dev', '8080' ]Часто використовується для CLI-інструментів.
process.memoryUsage()
→ Показує, скільки пам'яті споживає застосунок
console.log(process.memoryUsage());
/*
{
rss: 24576000,
heapTotal: 5464064,
heapUsed: 3661728,
external: 8704
}
*/process.uptime()
→ Час (у секундах) з моменту запуску процесу
console.log(process.uptime()); // 5.312process.exit([code])
→ Завершує виконання процесу
process.exit(0); // нормальне завершення
process.exit(1); // завершення з помилкоюКод 0 = успішно,
не 0 = помилка (наприклад, використовується в CI/CD чи shell-скриптах).
process.on(event, handler)
→ Підписка на події процесу
Приклади:
При завершенні програми:
process.on('exit', (code) => {
console.log('Завершення з кодом:', code);
});Необроблена помилка:
process.on('uncaughtException', (err) => {
console.error('Необроблена помилка:', err);
});При натисканні Ctrl+C:
process.on('SIGINT', () => {
console.log('Процес перервано користувачем');
process.exit();
});process.stdin, process.stdout, process.stderr
→ Потоки введення/виведення
process.stdout.write('Введіть ім'я: ');
process.stdin.on('data', (data) => {
console.log(`Привіт, ${data.toString().trim()}!`);
});Це базовий спосіб працювати з консоллю без зовнішніх бібліотек.
4. Приклад використання в реальному Node.js-застосунку
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.pid | ID процесу |
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, який дає доступ до інформації про запущений процес, змінних середовища, аргументів командного рядка, потоків введення/виведення й керування завершенням програми.
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.