Skip to content

Node.js, Express, MongoDB & More

  • 01. Добро пожаловать

001 - Структура курса и проекты
002 - Установим Node.js
  • 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. Введение в серверную веб-разработку

023 - Вступление к разделу
024 - Обзор того, как работает веб
025 - HTTP в действии
026 - Front-End vs Back-End разработка
027 - Статические, динамические сайты и API
  • 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

039 - Вступление к разделу
040 - Проблема колбэков - Ад колбэков
041 - От ада колбэков к промисам
042 - Создание промисов
043 - Использование промисов с Async, Await
044 - Возврат значений из async-функций
045 - Ожидание нескольких промисов одновременно
  • 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