Введение в Node.js
Вы познакомитесь с рабочей средой Node.js и инструментами разработки. По итогам модуля вы создадите консольное приложение для обработки файлов с помощью потоков.
• Особенности работы с Node.js, установка и настройка рабочей среды
• Менеджер пакетов
• Работа с консолью, циклы событий, асинхронность
• Модули Node.js и инструменты разработки
• Стримы (потоки)
• Node.js HTTP-module. HTTP-stream. Встроенный низкоуровневый веб-сервер
Библиотека Express.js
Познакомитесь с библиотекой Express.js, развернёте приложение на сервере, освоите Docker, подключите базу данных MongoDB для хранения данных и Passport.js для аутентификации пользователей, настроите обмен данными между клиентом и сервером — с этим помогут websocket и socket.io.
• Библиотеки Node.js для веб-разработки. Express.js
• Middleware. Паттерн «цепочка обязанностей»
• Шаблонизаторы. Отрисовка контента (рендер на сервере). Библиотеки Express.js
• Развёртывание приложения на сервере (heroku)
• Docker, установка и настройка. Контейнеризация приложения
• Сравнение реляционных и объектно-ориентированных БД
• Запуск локальной MongoDB в Docker. Подключение MongoDB в Тode.js-приложение
• Аутентификация. Passport.js
• Realtime взаимодействие с сервером, протокол websocket. Библиотеки ws и socket.io
Приложение для доставки
Вы создадите сайт доставки и чат для общения двух людей. Для создания сайта вы разработаете API для аутентификации, управления и просмотра объявлений и websocket-чат. В проекте вы задействуете технологии Node.js, Express.js, Passport.js, MongoDB и Websocket.
TypeScript
Вы освоите статическую типизацию для js кода с помощью TypeScript. На практике будете использовать богатую систему типов, декораторы, enum-ы и другие возможности языка TypeScript. Научитесь настраивать проект с помощью tsconfig.json, использовать eslint для проверки стиля и качества ts-кода. Воспользуетесь всеми возможностями TypeScript для написания надёжных приложений на Node.js.
• Node.js и TypeScript (настройка окружения, возможности)
• Динамическая типизация JavaScript vs статическая типизация TypeScript. Инструментарий tsc, tslint/eslint. Настройка проекта
• Система типов TypeScript. Основные принципы ООП. SOLID
• Библиотека Reflect-metadata. Loc-контейнеры: type-di, inversify
• Перенос и интеграция JS-проекта на примере пройденных материалов
• Организация проекта и кодовой базы. Разделение приложения на слои
Nest.js
Вы изучите фреймворк Nest.js и основные понятия, создадите проект на Node.js, реализуете функциональность из блока TypeScript на модули Nest.js, подключите базы данных (модуль для MongoDB). Научитесь подключать аутентификацию по модулям Nest.js и добавите тестирование кода в свой проект.
• Основные понятия: модули, контроллеры, сервисы. MVC-архитектура
• Погружение в Nest.js: инверсия зависимостей, провайдеры, Middleware
• Подключение базы данных к Nest.js — модулю для MongoDB. Сервисы, репозитории, примеры
• Потоки RxJs
• Валидация и обработка ошибок. Interceptors, pipes
• Аутентификация в Nest.js, Passport.js. Guards
• Тестирование. Библиотека JEST. Unit-тесты, интеграционные и приёмочные тесты
• Вебсокеты в Nest.js
Firebase
Cоздадите аккаунт firebase, внедрите функциональность проекта «Книги» на cloud-функции и подключите облачную базу данных для хранения данных из cloud-функций.
• Cloud Firestore, Realtime Database
• Cloud Functions, Hosting
• Firebase Authentication
Итоговый проект — агрегатор отелей
В конце обучения вы создадите сайт-агрегатор для просмотра и бронирования отелей. Для этого вы разработаете публичный API, API пользователя, API администратора и чат для консультанта. В проекте вы задействуете технологии Node.js, Nest.js, MongoDB и Websocket.