Темная тема
Node.js, Express, MongoDB & More
01. Добро пожаловать
02. Введение в Node.js и NPM
- 003 - Вступление к разделу;
- 004 - Что такое Node.js и зачем его использовать;
- 005 - Запуск JavaScript вне браузера;
- 006 - Встроенные модули;
- 007 - Чтение и запись файлов;
- 008 - Блокирующая и неблокирующая асинхронная природа;
- 009 - Асинхронное чтение и запись файлов;
- 010 - Создание простого веб-сервера;
- 011 - Маршрутизация;
- 012 - Создание (очень) простого API;
- 013 - HTML-шаблоны - Создание шаблонов;
- 014 - HTML-шаблоны - Заполнение шаблонов;
- 015 - Разбор переменных из URL;
- 016 - Собственные модули;
- 017 - Введение в NPM и файл package.json;
- 018 - Типы пакетов и способы установки;
- 019 - Сторонние модули;
- 020 - Версионирование пакетов и обновления;
- 021 - Настройка Prettier в VS Code;
- 022 - Итоги и что дальше;
03. Введение в серверную веб-разработку
04. Как работает Node.js
- 028 - Вступление к разделу;
- 029 - Node, V8, Libuv и C++;
- 030 - Процессы, потоки и пул потоков;
- 031 - Цикл событий Node.js;
- 032 - Цикл событий на практике;
- 033 - События и событийно-ориентированная архитектура;
- 034 - События на практике;
- 035 - Введение в потоки (Streams);
- 036 - Потоки на практике;
- 037 - Как на самом деле работает require модулей;
- 038 - Использование require на практике;
05. Асинхронный JavaScript
06. Создаем Natours API
- 046 - Вступление к разделу;
- 047 - Что такое Express;
- 048 - Установка Postman;
- 049 - Настройка Express и базовая маршрутизация;
- 050 - API и RESTful-дизайн;
- 051 - Обработка GET-запросов;
- 052 - Обработка POST-запросов;
- 053 - Ответы на параметрах URL;
- 054 - Обработка PATCH-запросов;
- 055 - Обработка DELETE-запросов;
- 056 - Рефакторинг наших маршрутов;
- 057 - Middleware и цикл запрос-ответ;
- 058 - Создание собственного middleware;
- 059 - Использование стороннего middleware;
- 060 - Реализация маршрутов пользователей;
- 061 - Создание и подключение нескольких роутеров;
- 062 - Лучшая структура файлов;
- 063 - Param middleware;
- 064 - Цепочка нескольких middleware-функций;
- 065 - Раздача статических файлов;
- 066 - Переменные окружения;
- 067 - Настройка ESLint + Prettier в VS Code;
07. Введение в MongoDB
- 068 - Вступление к разделу;
- 069 - Что такое MongoDB;
- 070 - Установка MongoDB на macOS;
- 071 - Установка MongoDB на Windows;
- 072 - Создание локальной базы данных;
- 073 - CRUD - Создание документов;
- 074 - CRUD - Запросы (чтение) документов;
- 075 - CRUD - Обновление документов;
- 076 - CRUD - Удаление документов;
- 077 - Использование приложения Compass для операций CRUD;
- 078 - Создание хостинговой базы данных в Atlas;
- 079 - Подключение к нашей хостинговой базе данных;
08. Использование Mongoose
- 080 - Вступление к разделу;
- 081 - Подключение базы данных к приложению Express;
- 082 - Что такое Mongoose;
- 083 - Создание простой модели Tour;
- 084 - Создание документов и тестирование модели;
- 085 - Введение в серверную архитектуру;
- 086 - Рефакторинг под MVC;
- 087 - Другой способ создания документов;
- 088 - Чтение документов;
- 089 - Обновление документов;
- 090 - Удаление документов;
- 091 - Моделирование туров;
- 092 - Импорт данных для разработки;
- 093 - Улучшение API - Фильтрация;
- 094 - Улучшение API - Продвинутая фильтрация;
- 095 - Улучшение API - Сортировка;
- 096 - Улучшение API - Ограничение полей;
- 097 - Улучшение API - Пагинация;
- 098 - Улучшение API - Псевдонимы;
- 099 - Рефакторинг функционала API;
- 100 - Конвейер агрегации - match и group;
- 101 - Конвейер агрегации - unwind и project;
- 102 - Виртуальные свойства;
- 103 - Middleware документов;
- 104 - Middleware запросов;
- 105 - Middleware агрегации;
- 106 - Проверка данных - Встроенные валидаторы;
- 107 - Проверка данных - Кастомные валидаторы;
09. Обработка ошибок в Express
- 108 - Вступление к разделу;
- 109 - Отладка Node.js с помощью ndb;
- 110 - Обработка необработанных маршрутов;
- 111 - Обзор обработки ошибок;
- 112 - Реализация глобального middleware для обработки ошибок;
- 113 - Улучшенные ошибки и рефакторинг;
- 114 - Отлов ошибок в асинхронных функциях;
- 115 - Добавление ошибок 404 Not Found;
- 116 - Ошибки в режиме разработки и в продакшене;
- 117 - Обработка неверных ID в базе данных;
- 118 - Обработка дублирующихся значений в базе данных;
- 119 - Обработка ошибок валидации Mongoose;
- 120 - Ошибки вне Express - Необработанные отклонения промисов;
- 121 - Отлов необработанных исключений;
10. Аутентификация
- 122 - Вступление к разделу;
- 123 - Моделирование пользователей;
- 124 - Создание новых пользователей;
- 125 - Управление паролями;
- 126 - Как работает аутентификация с JWT;
- 127 - Регистрация пользователей;
- 128 - Вход пользователей;
- 129 - Защита маршрутов - Часть 1;
- 130 - Защита маршрутов - Часть 2;
- 131 - Расширенная настройка Postman;
- 132 - Авторизация - Роли пользователей и разрешения;
- 133 - Сброс пароля - Токен сброса;
- 134 - Отправка email с Nodemailer;
- 135 - Сброс пароля - Установка нового пароля;
- 136 - Обновление пароля текущего пользователя;
- 137 - Обновление данных текущего пользователя;
- 138 - Удаление текущего пользователя;
- 139 - Лучшие практики безопасности;
- 140 - Отправка JWT через cookie;
- 141 - Реализация ограничения частоты запросов;
- 142 - Настройка защищённых HTTP-заголовков;
- 143 - Санитизация данных;
- 144 - Предотвращение загрязнения параметров;
11. Моделирование данных
- 145 - Вступление к разделу;
- 146 - Моделирование данных в MongoDB;
- 147 - Проектирование нашей модели данных;
- 148 - Моделирование локаций (геопространственные данные);
- 149 - Моделирование гидов тура - Встраивание;
- 150 - Моделирование гидов тура - Дочерние ссылки;
- 151 - Популяция гидов тура;
- 152 - Моделирование отзывов - Родительские ссылки;
- 153 - Создание и получение отзывов;
- 154 - Популяция отзывов;
- 155 - Виртуальная популяция - Туры и отзывы;
- 156 - Реализация простых вложенных маршрутов;
- 157 - Вложенные маршруты с Express;
- 158 - Добавление вложенного GET-эндпоинта;
- 159 - Фабричные функции - Удаление;
- 160 - Фабричные функции - Обновление и создание;
- 161 - Фабричные функции - Чтение;
- 162 - Добавление эндпоинта me;
- 163 - Добавление отсутствующей аутентификации и авторизации;
- 164 - Импорт отзывов и данных пользователей;
- 165 - Повышение производительности чтения с помощью индексов;
- 166 - Расчёт среднего рейтинга туров - Часть 1;
- 167 - Расчёт среднего рейтинга туров - Часть 2;
- 168 - Предотвращение дублирования отзывов;
- 169 - Геопространственные запросы - Поиск туров в радиусе;
- 170 - Геопространственная агрегация - Вычисление расстояний;
- 171 - Создание документации API с помощью Postman;
12. Серверный рендеринг с Pug
- 172 - Введение раздела;
- 173 - Серверный vs клиентский рендеринг;
- 174 - Настройка Pug в Express;
- 175 - Первые шаги с Pug;
- 176 - Создание базового шаблона;
- 177 - Включение файлов в шаблоны Pug;
- 178 - Расширение базового шаблона с блоками;
- 179 - Настройка структуры проекта;
- 180 - Создание обзорной страницы туров - Часть 1;
- 181 - Создание обзорной страницы туров - Часть 2;
- 182 - Создание страницы тура - Часть 1;
- 183 - Создание страницы тура - Часть 2;
- 184 - Включение карты с Mapbox - Часть 1;
- 185 - Включение карты с Mapbox - Часть 2;
- 186 - Создание экрана входа;
- 187 - Авторизация пользователей через наш API - Часть 1;
- 188 - Авторизация пользователей через наш API - Часть 2;
- 189 - Авторизация пользователей через наш API - Часть 3;
- 190 - Выход пользователей из системы;
- 191 - Рендеринг страниц ошибок;
- 192 - Создание страницы аккаунта пользователя;
- 193 - Обновление пользовательских данных;
- 194 - Обновление пользовательских данных через наш API;
- 195 - Обновление пароля пользователя через наш API;
13. Расширенные возможности
- 196 - Введение в раздел;
- 197 - Загрузка изображений с Multer;
- 198 - Настройка Multer;
- 199 - Сохранение имени изображения в базу данных;
- 200 - Изменение размеров изображений;
- 201 - Добавление загрузки изображений в форму;
- 202 - Загрузка нескольких изображений;
- 203 - Обработка нескольких изображений;
- 204 - Создание сложного обработчика email-ов;
- 205 - Email-шаблоны с Pug;
- 206 - Отправка писем для сброса пароля;
- 207 - Использование SendGrid для реальных писем;
- 208 - Платежи по кредитным картам через Stripe;
- 209 - Интеграция Stripe в back-end;
- 210 - Обработка платежей на front-end;
- 211 - Моделирование бронирований;
- 212 - Создание новых бронирований при успешной оплате;
- 213 - Рендеринг туров, забронированных пользователем;
- 214 - Завершение API бронирований;
- 215 - Заключительные замечания;
14. Настройка Git и деплой
- 216 - Введение в раздел;
- 217 - Настройка Git и GitHub;
- 218 - Основы Git;
- 219 - Отправка проекта на GitHub;
- 220 - Подготовка приложения к деплою;
- 221 - Деплой приложения на Heroku;
- 222 - Тестирование безопасных HTTPS-соединений;
- 223 - Обработка сигнала SIGTERM;
- 224 - Реализация CORS;
- 225 - Завершение платежей через Stripe Webhooks;