Пошук уроків, статей та іншого контенту
Навчимося запускати файли, передавати аргументи й використовувати основні можливості командного інтерфейсу Node.js.
CLI (Command-Line Interface) — інтерфейс командного рядка. За його допомогою можна запускати Node.js, виконувати JavaScript-файли та передавати програмам дані.
Найпростіша команда для запуску файлу:
node app.jsУ цьому прикладі:
node — команда запуску Node.js;
app.js — файл, який потрібно виконати.
Відкрийте термінал і виконайте:
node --versionабо скорочений варіант:
node -vКоманда виведе встановлену версію Node.js, наприклад:
v22.14.0Також можна перевірити версію менеджера пакетів npm:
npm --versionЯкщо термінал повідомляє, що команду node не знайдено, Node.js не встановлено або його шлях не додано до системної змінної PATH.
Створіть файл app.js:
console.log("Привіт із Node.js!");Запустіть його з термінала:
node app.jsРезультат:
Привіт із Node.js!Node.js виконає код файлу та виведе результат у термінал.
Команда node app.js шукає файл app.js у поточній папці термінала.
Дізнатися поточну папку можна так:
у macOS або Linux:
pwdу Windows PowerShell:
Get-LocationПереглянути файли в поточній папці:
у macOS або Linux:
lsу Windows PowerShell:
Get-ChildItemПерейти в іншу папку можна командою cd:
cd path/to/projectПісля цього Node.js зможе знайти файли в цій папці.
Аргументи — це значення, які передаються програмі під час запуску.
Наприклад:
node app.js Олена 25У програмі ці значення доступні через process.argv.
process.argvСтворіть файл args.js:
console.log(process.argv);Запустіть його:
node args.js Олена 25Масив process.argv містить:
шлях до виконуваного файлу Node.js;
шлях до запущеного JavaScript-файлу;
перший аргумент після назви файлу;
другий аргумент після назви файлу;
наступні аргументи, якщо вони є.
Приблизний результат:
[
'/usr/bin/node',
'/home/user/project/args.js',
'Олена',
'25'
]Шляхи залежать від операційної системи та розташування файлів.
Зазвичай програмі потрібні лише аргументи користувача. Їх можна отримати за допомогою slice(2):
const userArguments = process.argv.slice(2);
console.log(userArguments);Для команди:
node args.js Олена 25результат буде таким:
[ 'Олена', '25' ]Усі аргументи з командного рядка є рядками. Якщо потрібно виконати математичну операцію, значення треба перетворити на число.
Створимо програму, яка приймає ім’я та вік користувача.
Файл greeting.js:
const [name, age] = process.argv.slice(2);
if (!name || !age) {
console.log("Використання: node greeting.js <ім'я> <вік>");
process.exitCode = 1;
} else {
console.log(`Привіт, ${name}! Тобі ${age} років.`);
}Запуск із правильними аргументами:
node greeting.js Олена 25Результат:
Привіт, Олена! Тобі 25 років.Запуск без аргументів:
node greeting.jsРезультат:
Використання: node greeting.js <ім'я> <вік>const [name, age] = process.argv.slice(2);Отримує два перші аргументи та записує їх у змінні name і age.
if (!name || !age)Перевіряє, чи передані обидва значення.
process.exitCode = 1;Встановлює код завершення програми. Значення 0 зазвичай означає успішне виконання, а ненульове значення — помилку.
Встановлення process.exitCode дозволяє Node.js коректно завершити поточні операції, але повідомити операційній системі, що сталася помилка.
Аргументи можуть бути не лише позиційними, а й іменованими:
node app.js --name Олена --age 25Node.js не перетворює такі аргументи на об’єкт автоматично. Вони все одно доступні через process.argv.
Файл options.js:
const argumentsList = process.argv.slice(2);
const nameIndex = argumentsList.indexOf("--name");
const ageIndex = argumentsList.indexOf("--age");
const name = nameIndex !== -1
? argumentsList[nameIndex + 1]
: undefined;
const age = ageIndex !== -1
? argumentsList[ageIndex + 1]
: undefined;
if (!name || !age) {
console.log("Використання: node options.js --name <ім'я> --age <вік>");
process.exitCode = 1;
} else {
console.log(`Ім'я: ${name}`);
console.log(`Вік: ${age}`);
}Запуск:
node options.js --name Олена --age 25Результат:
Ім'я: Олена
Вік: 25Для невеликих навчальних програм такого підходу достатньо. Він показує, як працюють аргументи CLI без використання додаткових бібліотек.
Node.js має власні параметри командного рядка.
Показати довідку:
node --helpПоказати версію:
node --versionВиконати короткий фрагмент JavaScript без створення файлу:
node -e "console.log(2 + 3)"Результат:
5Перевірити синтаксис JavaScript-файлу без його виконання:
node --check app.jsЗапустити інтерактивний режим Node.js:
nodeПісля цього можна вводити JavaScript-команди безпосередньо в терміналі:
> 2 + 3
5
> console.log("Привіт")
ПривітЩоб вийти з інтерактивного режиму, натисніть Ctrl + C двічі або введіть:
.exitCLI-програми часто мають параметр --help, який пояснює спосіб використання. Його можна реалізувати самостійно:
const argumentsList = process.argv.slice(2);
if (argumentsList.includes("--help")) {
console.log("Використання: node greeting.js <ім'я> <вік>");
console.log("Приклад: node greeting.js Олена 25");
} else {
const [name, age] = argumentsList;
if (!name || !age) {
console.log("Помилка: потрібно вказати ім'я та вік.");
console.log("Спробуйте node greeting.js --help");
process.exitCode = 1;
} else {
console.log(`Привіт, ${name}! Тобі ${age} років.`);
}
}Тепер команда:
node greeting.js --helpвиведе коротку інструкцію, а не сприйматиме --help як ім’я користувача.
Помилка:
Cannot find module ...Перевірте:
чи існує файл;
чи правильно написана його назва;
чи перебуває термінал у потрібній папці;
чи вказано правильний шлях до файлу.
Усі значення з process.argv є рядками:
const [first, second] = process.argv.slice(2);
console.log(first + second);Для команди:
node app.js 2 3результат буде:
23Це об’єднання рядків, а не додавання чисел. Для числових операцій використовуйте перетворення:
const [first, second] = process.argv.slice(2);
const result = Number(first) + Number(second);
console.log(result);Тепер результат:
5Значення з пробілами потрібно взяти в лапки:
node greeting.js "Анна Марія" 30Без лапок Анна і Марія будуть сприйняті як два окремі аргументи.
Якщо програма очікує аргументи, перевіряйте їх перед використанням. Інакше можна отримати значення undefined і некоректний результат.
JavaScript-файл запускається командою node назва-файлу.js.
Версію Node.js можна перевірити командами node --version або node -v.
Аргументи командного рядка доступні в масиві process.argv.
process.argv.slice(2) повертає аргументи, передані користувачем.
Усі аргументи спочатку є рядками.
Для чисел потрібно використовувати Number().
Відсутні аргументи слід перевіряти до виконання основної логіки.
process.exitCode дає змогу повідомити про помилку через код завершення.
Параметри --help, --version та --check допомагають працювати з Node.js CLI.