Что такое Node.js
Node.js — это среда, которая выполняет JavaScript вне браузера: на вашем компьютере или на сервере. Язык тот же, что вы изучили в учебнике, но вместо страницы и кнопок у программы есть доступ к файлам, сети и операционной системе. На Node.js пишут веб-серверы, утилиты командной строки и инструменты сборки.
Версия
Курс рассчитан на Node.js 22 и новее. Чётные версии (22, 24) получают статус LTS — долгосрочной поддержки: их исправляют несколько лет, поэтому на серверах ставят именно их. Все примеры используют ES-модули (import и export) и встроенные модули с приставкой node:.
Установка
Скачайте установщик с сайта nodejs.org — выберите версию с пометкой LTS. Затем откройте терминал и проверьте результат:
node --version
npm --versionПервая команда выведет версию Node.js, например v22.12.0, вторая — версию npm, менеджера пакетов, который ставится вместе с Node.js.
Чем Node.js отличается от браузера
| В браузере | В Node.js |
|---|---|
Есть document и window | Их нет: страницы не существует |
| Доступа к файлам нет | Можно читать и писать файлы |
| Код приходит с сайта | Код лежит на вашем компьютере |
| Сеть ограничена правилами браузера | Можно принимать и отправлять любые запросы |
Сам язык — переменные, функции, классы, промисы — работает одинаково.
Что будем строить
Через весь курс проходит один пример — небольшой блог. Сначала вы научитесь хранить статьи в JSON-файле, затем напишете HTTP-сервер, который отдаёт их списком и по одной, принимает новые статьи и комментарии. Всё — на встроенных модулях, без фреймворков. Когда вы поймёте, как устроен сервер «вручную», станет ясно, что делают за вас Express и другие фреймворки.
Структура курса
| Глава | О чём |
|---|---|
| Начало работы | Запуск программ, package.json, модули, npm |
| Программа и окружение | Аргументы, переменные окружения, пути |
| Файлы | Чтение, запись, папки, потоки |
| Асинхронность | Цикл событий, события, ошибки |
| HTTP без фреймворков | Сервер, маршруты, JSON API, fetch |
| Инструменты и практика | Тесты, отладка, база данных, развёртывание |
Частая ошибка
Код, рассчитанный на браузер, в Node.js не сработает: объектов страницы здесь нет.
// document.querySelector('h1');
// ReferenceError: document is not defined
console.log(typeof document); // undefinedЕсли видите ошибку document is not defined, значит, скрипт для веб-страницы запущен через node. Такой код подключают к HTML-странице, а не выполняют в терминале.