1. Что такое командная строка и зачем она нужна
Перед тем, как перейти к запуску скриптов на Node.js, давайте разберёмся, что такое командная строка (она же терминал, shell, консоль, командный процессор). Это такая “магическая” чёрная (или белая) окошко, куда можно вводить команды, и компьютер будет их выполнять напрямую, без всяких интерфейсов и мышек. Именно через командную строку обычно запускают Node.js-приложения и управляют пакетами npm.
Аналогия:
Командная строка — это как старый телефон с диском: не очень красиво, но работает быстро и надёжно, а иногда просто незаменима.
Как открыть командную строку
- Windows: Нажмите Win+R, введите cmd и нажмите Enter. Или найдите “Командная строка” через поиск. Альтернатива — PowerShell.
- MacOS: Откройте “Терминал” через Spotlight (Cmd+Space → “Terminal”).
- Linux: Обычно терминал доступен через Ctrl+Alt+T или через меню приложений.
Важно: Все дальнейшие примеры команд предполагают, что вы работаете в командной строке в папке вашего проекта.
2. Проверяем Node.js и npm
Давайте еще раз убедимся, что Node.js установлен и работает. Введите в командной строке:
node -v
Если всё хорошо — увидите версию Node.js, например:
v22.17.0
И аналогично для npm:
npm -v
Если команду не узнаёт — значит, Node.js не установлен или не добавлен в PATH. Вернитесь к предыдущей лекции и повторите установку.
3. Еще один скрипт на Node.js: Hello, World!
Создание файла
Для начала создадим простой файл. Пусть это будет hello.js. Можно создать файл в любом редакторе кода (например, VSCode, Notepad++, WebStorm), или даже через командную строку (например, командой touch hello.js на Mac/Linux или type nul > hello.js на Windows).
Пример содержимого:
// hello.js
console.log('Hello, Node.js!');
Запуск скрипта
Чтобы выполнить этот скрипт, используйте команду:
node hello.js
Что происходит?
Node.js читает файл hello.js и выполняет его, как обычную программу на JavaScript. В результате вы увидите:
Hello, Node.js!
Поздравляю! Вы только что запустили свой первый Node.js-скрипт.
4. Как работает запуск скриптов
Когда вы пишете в терминале node имя_файла.js, Node.js:
- Находит указанный файл (ищет в текущей папке).
- Загружает его содержимое.
- Выполняет весь JavaScript-код сверху вниз.
- Если в коде есть ошибки — покажет их в консоли.
Если файл не найден
Если вы ошиблись в имени файла, то получите ошибку:
Error: Cannot find module '/path/to/wrongname.js'
Проверьте, в какой папке вы находитесь и как называется ваш файл.
5. Переход между папками в командной строке
Часто бывает, что нужный файл лежит не в той папке, где вы сейчас находитесь.
- Чтобы посмотреть, где вы находитесь:
- Windows: cd
- Mac/Linux: pwd
- Чтобы перейти в другую папку: cd имя_папки
- Чтобы подняться на уровень выше: cd ..
Пример:
cd my-node-project
node app.js
6. Запуск скрипта с аргументами
Node.js позволяет передавать аргументы скрипту прямо из командной строки. Это очень удобно, если вы хотите сделать свой скрипт гибким.
Пример:
Создайте файл greet.js:
// greet.js
const name = process.argv[2]; // Третий элемент массива — первый пользовательский аргумент
console.log('Привет, ' + name + '!');
Запустите так:
node greet.js Вася
Результат:
Привет, Вася!
Что за process.argv?
Это специальный массив, в котором хранятся все аргументы командной строки:
- process.argv[0] — путь к node.exe
- process.argv[1] — путь к вашему скрипту
- process.argv[2] и далее — ваши аргументы
7. Запуск нескольких скриптов: best practices
Когда у вас в проекте несколько файлов, вы можете запускать любой из них:
node script1.js
node script2.js
Если у вас есть “главный” файл (например, index.js или app.js), обычно его и запускают.
Запуск из любой папки
Если вы не в той папке, где лежит скрипт, можно указать относительный или абсолютный путь:
node ./src/app.js
node ../some/other/script.js
8. Автоматизация запуска: npm scripts
Когда проект становится больше, вручную писать длинные команды неудобно. На помощь приходят npm scripts (но подробно они будут рассмотрены в следующих лекциях). Кратко:
В файле package.json можно прописать скрипты для запуска:
{
"scripts": {
"start": "node app.js",
"test": "node test.js"
}
}
После этого можно запускать:
npm start
npm run test
Это удобно: не нужно помнить длинные команды, можно запускать сразу несколько команд подряд.
9. Практика: мини-приложение “Калькулятор”
Давайте создадим чуть более сложный пример, который пригодится нам в следующих лекциях.
Шаг 1. Создайте файл calc.js:
// calc.js
const a = Number(process.argv[2]);
const b = Number(process.argv[3]);
const op = process.argv[4]; // '+', '-', '*', '/'
if (isNaN(a) || isNaN(b)) {
console.log('Ошибка: введите два числа и операцию');
process.exit(1);
}
let result;
switch (op) {
case '+': result = a + b; break;
case '-': result = a - b; break;
case '*': result = a * b; break;
case '/': result = b !== 0 ? a / b : 'Ошибка: деление на ноль'; break;
default: result = 'Неизвестная операция';
}
console.log('Результат:', result);
Шаг 2. Запустите скрипт:
node calc.js 10 5 +
Результат:
Результат: 15
Шаг 3. Попробуйте другие операции и неправильные вводы.
10. Типичные ошибки при работе с командной строкой и запуском скриптов
Ошибка №1: запуск скрипта не из той папки.
Если вы находитесь не в той директории, где лежит ваш .js-файл, Node.js выдаст ошибку “Cannot find module”. Всегда проверяйте, где вы находитесь (pwd или cd).
Ошибка №2: опечатка в имени файла.
Пропустили букву — и Node.js не находит файл. Используйте автодополнение (Tab) или копируйте имя файла.
Ошибка №3: забыли сохранить файл после изменений.
Часто бывает, что вы внесли изменения в редакторе, но забыли нажать “Сохранить” (Ctrl+S). В результате запускается старая версия скрипта.
Ошибка №4: не указали расширение файла.
Node.js ищет именно .js-файлы. Если ваш файл называется просто app, а не app.js, команда node app не сработает.
Ошибка №5: неправильная работа с аргументами.
Если вы забыли, что process.argv[2] — это первый пользовательский аргумент, а не сам скрипт, то можете получить undefined вместо значения.
Ошибка №6: используете команды не под свою ОС.
На Windows и Linux/Mac команды для создания файлов, перехода по папкам, иногда отличаются. Проверяйте синтаксис для вашей платформы.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ