Курс «Backend на Node.js» — это последовательное погружение в серверную разработку на JavaScript. Вы начнёте с настройки рабочего окружения и основ Node.js, разберётесь с модулями, пакетами, файловой системой, потоками и событиями, а затем перейдёте к созданию HTTP-серверов и REST API.
В процессе обучения вы познакомитесь с PostgreSQL, научитесь работать с файлами, переменными окружения, HTTPS и внешними API, а также освоите базовые инструменты для разработки и развёртывания серверных приложений.
В финале курса примените полученные знания на практике: разработаете полноценное Node.js-приложение, развернёте его на сервере и опубликуете исходный код.
Программа курса
Тема 0. Подготовка рабочего пространства
- Установка необходимых инструментов: VS Code, плагины, Git, Insomnia
- Установка Node.js на Windows, macOS и Linux
- Конфигурация EditorConfig, ESLint и Prettier
- Работа с GitHub
- (Опционально) Установка Linux в виртуальной машине
Тема 1. Введение в Node.js
- Область применения Node.js
- Архитектура Node.js
- Event Loop
- V8
Тема 2. REPL, модули и пакеты
- REPL и основы командной строки
- Модульная система CommonJS и ES Modules
- Управление пакетами в Node.js
Тема 3. NPM и package.json
- Структура и конфигурация package.json
- Семантическое версионирование
- Работа с зависимостями для продакшена и разработки
Тема 4. События и EventEmitter
- Принцип работы событий в Node.js
- Класс EventEmitter
- Создание пользовательских событий
Тема 5. Файловая система (fs)
- Работа с файлами и папками
- Асинхронные и синхронные операции
- Основные методы: stat, appendFile и другие
Тема 6. Buffer и Stream
- Буферы в Node.js
- Чтение и запись потоков
- Конвейеры потоков (pipe)
Тема 7. Process и Readline
- Переменные окружения и аргументы командной строки
- Организация интерактивного ввода-вывода с помощью readline
Тема 8. CLI-приложения
- Разработка CLI-инструментов на Node.js
- Обработка команд и аргументов
- Сохранение данных и организация файловой структуры
Тема 9. Модули OS и Path. Публикация пакетов
- Работа с информацией о системе с помощью os
- Манипуляции с путями с помощью path
- Публикация пакетов в npm
Тема 10. HTTP-сервер и HTTP-клиент
- Создание HTTP-сервера на встроенном модуле http
- Парсинг URL и обработка маршрутов
- Работа с внешними HTTP/HTTPS API
Тема 11. HTTPS, HTTP-заголовки и ENV
- Настройка HTTPS-сервера и SSL-сертификатов
- Основные HTTP-заголовки и MIME-типы
- Переменные окружения и конфигурация через .env
Тема 12. Сжатие и crypto
- Сжатие данных с помощью zlib
- Создание хэшей и шифрование с помощью crypto
Тема 13. Разработка REST API
- Проектирование и реализация REST-эндпоинтов
- Клиент-серверное взаимодействие
Тема 14. Работа с базой данных PostgreSQL
- Подключение к базе данных
- Выполнение запросов
- Миграции
- Использование knex или node-postgres
Тема 15. Загрузка файлов на сервер
- Приём файлов через FormData и Base64
- Хранение и обработка загруженных файлов
Тема 16. Деплой приложения
- Развёртывание приложения на Render.com
- Развёртывание на собственном сервере
- Использование PM2 и Nginx
Итоговый проект
- Разработка полнофункционального Node.js-приложения с использованием изученных технологий
- Развёртывание приложения
- Публикация исходного кода











