Какие темы будут рассмотрены в курсе?
Введение в Node.js
Вступительное слово и обзор курса:
Вступительное слово.
Что будет рассмотрено в курсе и введение в Node.js.
Особое внимание уделяется работе с репозиториями кода.
Создание базового сервера:
Построение простого первого сервера.
Объяснение того, что такое сервер и обработка HTTP запросов и ответов.
Понимание статусных кодов и возврат JSON против HTML.
Основы обработки запросов:
Введение в API серверные конечные точки.
Определение множественных маршрутов для обработки запросов.
Продвинутое управление серверными запросами:
Понимание структуры HTTP запроса.
Объяснение статусных кодов и поведение сервера.
Подготовка к написанию Restful API:
Введение в Restful API.
Понимание QueryString и параметров запроса.
Работа с файловой системой
Чтение файлов в Node.js:
Работа с модулем файловой системы (fs).
Использование функции readFile асинхронно.
Использование функции readFileSync синхронно.
Введение в модули fs и path.
Создание сервера с несколькими конечными точками.
Сохранение текстовых и JSON файлов.
Сохранение файлов в Node.js:
Использование функции writeFile асинхронно для записи файлов.
Использование функции writeFileSync синхронно для записи файлов.
Обработка ошибок на сервере.
Удаление файлов в Node.js:
Удаление файлов с использованием unlinkSync.
Использование директорий в файловой системе.
Функция для проверки существования файла в файловой системе.
Обработка POST-запросов:
Базовая архитектура сервера.
Обработка post-запросов.
Использование Postman для создания get и post запросов.
Использование валидации на сервере:
Написание осмысленного сервера.
Использование валидаций и ошибок на сервере.
Создание сервера с множественными запросами (чтение, запись, удаление файлов операционной системы).
Написание сервера с использованием Express
Введение в использование Express:
Обзор библиотеки express.
Использование библиотеки express для написания сервера.
Использование функций send, sendStatus и json.
Обработка get-запросов.
Работа с Querystring и Params:
Использование req.query с express.
Использование req.params с express.
Написание сервера данных администратора с использованием файловой системы.
Обработка POST-запросов на сервере:
Обработка post-запросов с помощью express.
Объяснение использования middleware.
Добавление проверки чисел на сервере.
Архитектура сервера:
Архитектура сервера в express.
Использование express.Router для управления маршрутизацией сервера.
Добавление и создание контроллеров на сервере.
Добавление и создание сервисов на сервере.
Использование Middlewares в Express:
Понимание middlewares в express.
Правильное встраивание middlewares в контроллеры.
Написание валидаций с использованием middlewares.
MongoDB
Введение в MongoDB:
Введение в базы данных.
Различия между реляционными и нереляционными базами данных.
Введение в MongoDB и общие случаи использования.
Подключение express сервера к MongoDB.
Введение в использование mongo GUI.
Сохранение и извлечение записей:
Определение схем и рассмотрение общих типов.
Создание записи в MongoDB с помощью функции save.
Поиск записей в MongoDB с использованием функции find.
Использование общих фильтров, таких как gte$, $gt, $lte, $lt и eq$.
Продвинутые запросы в MongoDB:
Понимание идентификатора ObjectId.
Объяснение функции toJSON.
Использование запроса findById в MongoDB.
Обновление записей с использованием findByIdAndUpdate.
Использование оператора inc$.
Использование функции count в MongoDB.
Определение значений по умолчанию для схемы в MongoDB.
Запросы на удаление и базовые операторы:
Удаление записей с использованием findByIdAndDelete.
Использование оператора push$.
Обработка запросов при сбое сервера (500).
Продвинутые агрегации в MongoDB:
Построение продвинутого pipeline и использование агрегаций.
Сортировка данных в запросах MongoDB.
Использование общих операторов, таких как sum, $max, $min и avg$.
Продвинутые взаимосвязи между коллекциями в MongoDB:
Объяснение связывания коллекций с использованием ref.
Использование действия populate в MongoDB.
Подробное объяснение создания идентификатора в MongoDB.
Безопасность сервера с аутентификацией
Введение в JWT:
Обзор безопасности сервера.
Введение в пакет jsonwebtoken.
Создание первого токена.
Использование функции verify для проверки валидности токена.
Написание безопасного API:
Добавление слоя безопасности к серверу.
Создание промежуточного ПО (Middleware) для безопасности сервера.
Реализация безопасности с помощью JWT на написанном нами сервере.
Использование библиотеки Crypto:
Основы использования шифрования на сервере.
Объяснение хеш-функций для хеширования паролей.
Добавление 'соли' в схему для повышения безопасности.
Объяснение возможных атак.
Взаимодействие между серверами:
Использование библиотеки axios для взаимодействия серверов.
Получение данных с другого сервера через написанный нами сервер.
Хранение данных в MongoDB, полученных с внешнего сервера.
Заключительные слова:
Заключительные слова для подведения итогов курса.