background top icon
background center wave icon
background filled rhombus icon
background two lines icon
background stroke rhombus icon

Скачать "Crie e Faça Deploy de uma API COMPLETA com Node, TypeScript & MongoDB"

input logo icon
"videoThumbnail Crie e Faça Deploy de uma API COMPLETA com Node, TypeScript & MongoDB
Оглавление
|

Оглавление

0:00
Introdução
1:10
Setup do Projeto
8:39
Configurando o Express
11:04
Arquitetura da API (Controllers & Repositories)
12:08
Repository Pattern
14:31
Criando o GetUsersController
24:27
Criando o MongoGetUsersRepository
30:21
Configurando o MongoDB com Docker Compose
32:05
Configurando o MongoDB com MongoDB Atlas
34:25
Criando o MongoClient para se conectar com MongoDB
44:25
Chamando o MongoDB no MongoGetUsersRepository
51:07
Criando o CreateUserRepository
59:29
Criando o CreateUserController
1:08:50
Criando um usuário pelo Postman
1:11:34
Adicionando validações no CreateUserController
1:18:06
Criando o UpdateUserRepository
1:24:40
Criando o UpdateUserController
1:35:13
Atualizando um usuário pelo Postman
1:36:30
Criando o DeleteUserRepository
1:40:31
Criando o DeleteUserController
1:44:10
Deletando um usuário pelo Postman
1:45:01
Fazendo refatorações
2:03:03
Fazendo o Deploy
Теги видео
|

Теги видео

nodejs
node
node js
js node
javascript
js
node backend
node api
api node
typescript
ts
type script
api
apinode
node js api
api node js
api rest
api restful
api rest node
api rest typescript
api rest ts
Субтитры
|

Субтитры

subtitles menu arrow
  • enАнглийский
Скачать
00:00:00
Эй, ребята, добро пожаловать
00:00:02
еще одно видео здесь на канале советы для
00:00:03
разрабатывает канал, который приносит вам
00:00:05
программирование Никакой ерунды Меня зовут
00:00:07
Фелипе, сегодня я твой учитель и сегодня
00:00:09
без лишних слов мы построим
00:00:11
вместе полный пирест, используя
00:00:13
суперсовременные технологии они типа
00:00:16
скрипт в GS Express и mongo DB и не только
00:00:20
Исходя из этого, мы будем использовать несколько принципов
00:00:22
здесь, которые относятся к передовой практике в
00:00:24
В основном твердое программирование
00:00:26
в основном шаблоны проектирования
00:00:28
а еще я покажу тебе сегодня
00:00:29
так что это будет видео, в котором я вам расскажу
00:00:31
передать много контента, много концепций
00:00:33
более продвинутый, чем это могло бы быть
00:00:35
для тебя это может быть немного сложно
00:00:37
но если ты останешься здесь до конца, ты
00:00:40
Вы можете быть уверены, что не будете
00:00:42
сожалею об этом, ты многому научишься
00:00:44
как программист Красавица, так что поехали
00:00:45
это будет пьеса, в которой мы
00:00:47
По сути, это вызовет ажиотаж, ясно?
00:00:49
поэтому мы сами создадим пользователей
00:00:51
удалю обновление и прочитаю пользователей Но
00:00:54
как я уже сказал, он будет липким, но
00:00:56
мы собираемся использовать много крутых вещей
00:00:58
что-то, что будет иметь большое значение там
00:01:01
в твоей карьере. Хорошо, поехали.
00:01:03
Я не буду здесь вдаваться в подробности
00:01:04
настройка, потому что у меня есть видео, в котором я
00:01:06
Рассказываю подробнее как это сделать
00:01:07
полная настройка индивидуального приложения
00:01:10
проект с использованием узла Type script
00:01:12
тогда все, что мы собираемся использовать здесь
00:01:13
Начнем, я не буду углубляться
00:01:15
Как я уже сказал, у меня есть это видео больше
00:01:17
посвящен этому, ок, давайте откроем
00:01:19
Вот мой проект, и теперь я собираюсь дать
00:01:22
npm и Ник поставили для этого тире Y
00:01:24
принятие этих вопросов является стандартным
00:01:27
npm, ок, теперь я уже отправлю это в gitnet
00:01:30
Я создам здесь файл с именем dot
00:01:32
Git Ignore и здесь я помещу узел
00:01:35
моды, и суть AMV в том, что это
00:01:38
действительно разнообразные вещи, которые мы
00:01:40
скоро создам, а теперь поехали
00:01:42
настройте скрипт Type, как я сказал
00:01:44
мы собираемся использовать телескрипт здесь, в нашем
00:01:46
проект Итак, давай устроим
00:01:48
пришелец из D. Я буду использовать WinRAR в качестве
00:01:50
менеджер пакетов Но вы можете
00:01:52
Использование npm не имеет никакого значения, ясно?
00:01:55
и я поставлю tsc Тип скрипта и TS
00:01:59
отметим все это как зависимость от
00:02:01
развитие Красота сейчас я подарю
00:02:03
введите здесь, он установит
00:02:05
зависимости для меня красота установлена ​​и
00:02:07
Теперь я собираюсь создать здесь файл
00:02:10
Я создам папку с именем src и в ней
00:02:12
папка будет иметь всю структуру нашего
00:02:14
проект «Я покажу тебе архитектуру»
00:02:16
более подробно для вас, но здесь для
00:02:18
пока я собираюсь создать папку под названием
00:02:20
index.ts и я создам скрипт для
00:02:22
запустите этот файл и перезапустите
00:02:25
сервер всякий раз, когда этот файл
00:02:27
модифицированный или любой другой файл
00:02:28
здесь, в папке src, как мне идти?
00:02:31
сделай это, я поставлю другого парня
00:02:33
здесь как зависимость развития
00:02:34
также называемый
00:02:36
ты, должно быть, уже использовал это, красота закрыта
00:02:40
терминал здесь против J сейчас здесь в
00:02:41
пакет очков Джейсон, я собираюсь создать его
00:02:43
скрипт, я удалю этот тест
00:02:45
создать скрипт под названием start must
00:02:48
и я положу
00:02:50
в часах с лимоном Что случилось в одинарных кавычках
00:02:54
Я поставлю то, что он хочет
00:02:56
обратите внимание, что в данном случае это будет src Bar или
00:02:58
быть всем внутри папки src и
00:03:00
он еще раз подаст пример
00:03:03
в одинарных кавычках тестовый узел s100 и
00:03:07
что я вложу в него инопланетян
00:03:09
сигнализировать ему, что его файл типа
00:03:11
Хорошо, сценарий, вот этот
00:03:13
в основном всякий раз, когда этот парень меняет
00:03:16
мы запустим этот скрипт здесь, ОК
00:03:18
Теперь, когда на колодах я положу один
00:03:20
консольный видеоблог Я не знаю Hello Road
00:03:23
и сейчас я зайду сюда в свой терминал и
00:03:26
Арно должен начать, посмотрим, пойдет ли он
00:03:30
с панелью я забыл дать TSC
00:03:35
учтите, ребята, так что нам нужно создать
00:03:36
этот тип файла конфигурации
00:03:39
сценарий, поэтому для этого мы будем
00:03:40
дайте NPS tsc две черточки, и этот парень сделает
00:03:44
создай для меня этот файл, я больше не буду
00:03:46
углубиться в это, потому что у меня есть курс
00:03:48
предназначен только для тайп-скрипта
00:03:50
выпотрошить все об этом файле все
00:03:52
о Тите, что вам нужно знать
00:03:54
сделай это видео здесь, чтобы получить
00:03:57
следи за этим уроком вместе со мной в каком-то смысле
00:03:58
более плавно, я оставлю курс здесь
00:04:00
на карте, но если вы еще не знаете
00:04:02
сценарий или ты просто знаешь основы?
00:04:04
Ты можешь остаться здесь со мной, и я приду
00:04:05
очень медленно, чтобы вы поняли
00:04:07
Ты обязательно сможешь следовать за мной, ладно?
00:04:09
ну, это может быть сложнее, но если вы
00:04:10
Если у вас есть такая преданность делу, вы достигнете этого.
00:04:12
ОК ОК, я создал файл здесь сейчас
00:04:15
Я смогу запустить скрипт, поехали
00:04:18
посмотрим и повезет, должно быть, красота арендована здесь, если
00:04:21
Я сохраняю сейчас, он перезапустится здесь
00:04:22
красивая вещь, ладно, ребята, давайте сделаем это
00:04:25
первое приглашение сюда, потому что Ctrl C
00:04:27
чтобы остановить процесс, я дам
00:04:29
Я собираюсь начать с gitcomate
00:04:32
комиксы
00:04:34
Настройка крипа, поэтому мы сделали первый
00:04:37
комментарий с настройкой Type script
00:04:40
Хорошо, ребята, пойдем быстрее
00:04:43
здесь настройте s20 и привер, если хотите
00:04:45
ты не знаешь s20 еще раз объясню
00:04:48
об этом подробнее у меня
00:04:50
видео об этом этапе проекта, но
00:04:51
s20 заставит нас следовать
00:04:55
конкретный конкретный набор
00:04:58
правил нашего приложения и
00:05:00
сначала сделаем наш
00:05:01
код автоматически форматируется
00:05:03
для нас, когда мы сэкономим тогда
00:05:04
поставить запятую, поставить мост
00:05:06
интервалы и тому подобное, ладно?
00:05:08
Сделать эту настройку очень просто
00:05:10
сначала нам нужен еще раз
00:05:12
существует ли зависимость от
00:05:13
развитие, здесь есть ребята
00:05:16
они превосходно красивее
00:05:18
и настройка s20
00:05:21
круто, давай установим
00:05:24
Хорошо, он установлен, теперь я дам ему Clear и
00:05:27
Я наберу следующий NPS: отлично
00:05:29
2-инициализируйте этого парня, он инициализирует
00:05:32
s20 для меня со всем, что мне нужно
00:05:34
файл конфигурации и все
00:05:36
Так что давайте подождем немного здесь
00:05:38
круто, я добавлю это в закладки в этот понедельник
00:05:41
вариант вот от Джека, чувствует проблемы
00:05:44
какой тип модуля у нас есть?
00:05:47
используя импорт-экспорт, именно потому, что мы
00:05:48
использует скрипт, не использует рамки
00:05:51
что наш проект тогда
00:05:54
сценарий вашего проекта Да, и я переношу
00:05:57
курсор со стрелками — персональный E
00:05:59
выбор с помощью ввода. Тогда я буду
00:06:01
проверьте, что да, мы его используем и где создаем
00:06:03
код будет работать только на том узле, который я буду
00:06:05
нажмите здесь пробел, чтобы отметить и
00:06:06
снимите флажок с браузера, потому что это
00:06:08
сервер не будет работать в Beauty Browser
00:06:09
ОК, он нажал Enter, теперь спросил, какой именно
00:06:12
В каком формате я хочу, чтобы мой файл был?
00:06:14
конфигурация: я отмечу Джейсона
00:06:16
Я выберу здесь Да, чтобы установить
00:06:18
зависимости и я выберу пряжу здесь
00:06:21
с менеджером пакетов теперь это
00:06:23
Установка многих вещей займет много времени.
00:06:24
еще немного, и я сейчас вернусь, красотка
00:06:26
установлено здесь, теперь мы готовы
00:06:29
чтобы продолжить, я нажму кнопку управления здесь
00:06:31
чтобы закрыть нужный нам терминал
00:06:32
На самом деле, люди что-то делают
00:06:34
Вот наш файл конфигурации
00:06:36
здесь нам нужно создать
00:06:40
объект под названием Проект На
00:06:44
правда, я думаю, это партнерские варианты
00:06:45
это здесь, в опциях партнера, мы это сделаем
00:06:47
поставь Project Project и поехали
00:06:50
поставьте точку косую черту TS config.j
00:06:55
в наш файл конфигурации
00:06:58
Введите и вам, конечно, нужно установить оба
00:07:01
расширение s20 в вашем vscode, сколько
00:07:04
выбор Питера
00:07:06
эти два расширения здесь красота и
00:07:09
тогда установи Твиттер мы
00:07:10
нужно сказать vsco, чтобы он использовал его
00:07:13
когда мы сохраняем наш файл
00:07:15
поэтому для этого вы нажмете
00:07:16
контроль, вы будете искать вариант
00:07:19
формацию сохранить или отформатировать или сохранить, если
00:07:21
это на португальском языке, вы отметите это
00:07:23
парень, и ты поищешь другого парня
00:07:25
называется «Дурак» по делу, и вы будете
00:07:27
поставь Питера Бьюти сейчас, когда ты
00:07:29
сохрани, отформатируй здесь, покажи
00:07:31
мяч
00:07:32
ок, ребята, теперь просто для облегчения, поехали
00:07:34
перезапустить vscold Тогда я нажму
00:07:36
против сдвига p и поиска нагрузки
00:07:38
Окна
00:07:40
Покажите код мяча, и теперь мы
00:07:42
готовы начать нашу
00:07:44
проект, все это здесь было настроено сейчас
00:07:46
вообще-то, давай начнем раньше этого
00:07:48
давайте оставим комментарий, а затем нажмите
00:07:49
Ctrl J, я собираюсь сделать git-коммит, ребята.
00:07:53
Я собираюсь следовать шаблону, который называется
00:07:54
Соглашение
00:07:57
чтобы мы могли оставить свои комментарии
00:08:00
стандартизировано, так что это обычные комиксы
00:08:03
это обычный комикс
00:08:06
в основном говорит нам поставить
00:08:07
префиксы здесь, в наших комментариях, тогда
00:08:10
например, если это что-то новое, что
00:08:13
мы добавляем мы добавляем запишите, если это что-то связано
00:08:16
чтобы исправить ошибку, которую мы
00:08:18
все равно добавьте Исправить, здесь есть несколько вещей
00:08:20
что мы можем использовать Красоту
00:08:22
когда это что-то связано с настройкой
00:08:24
проекте мы используем префикс под названием
00:08:26
цвет Итак, я собираюсь поставить читалку Core Edge
00:08:29
и настроить персональную красоту Теперь да
00:08:33
Мы готовы, приступаем к выполнению
00:08:35
Экспресс-настройка, которую мы будем использовать
00:08:37
он здесь, чтобы создать наш веб-сервер
00:08:39
Итак, начнем
00:08:41
давайте сначала установим Express, затем
00:08:44
пряжа Edge Express
00:08:49
красота и мы ее тоже установим
00:08:52
типы слэша выражаются как зависимость
00:08:54
разработка и тайпы/узлы
00:08:58
Хорошо, теперь пойдем сюда, в наш
00:09:03
индекс, давайте сделаем все, настроим
00:09:07
Экспресс Итак, давайте потерпим это отсюда
00:09:09
парень по имени Экспресс из Экспресса здесь
00:09:12
Я помещу сюда константное приложение, оно будет
00:09:15
равные, выражайте красоту, и теперь я собираюсь
00:09:18
введите сюда данные, какая дверь
00:09:20
наше приложение будет работать и здесь
00:09:23
правда, давайте сейчас настроим Dote
00:09:25
AMV, чтобы получить эту переменную отсюда
00:09:27
наш файл Итак, давайте сделаем
00:09:29
быстро вот я дам пряжу Край
00:09:31
тоже чемпион по точкам
00:09:35
красота, и теперь я собираюсь импортировать ее сюда
00:09:37
чев
00:09:39
импорт из
00:09:44
и я собираюсь импортировать конфиг и начну
00:09:46
позвони в конфиг красоты и сейчас я сделаю
00:09:49
создай файл здесь и я положу
00:09:52
здесь дверь будет 8000 Хорошо, тогда
00:09:55
этот порт будет равен процессам
00:09:58
Или можем поставить стандартную дверь
00:10:01
здесь, если пользователь не указывает
00:10:03
дверь здесь, в нашем файле, я помещу
00:10:05
8000 тоже красиво и теперь даем
00:10:08
app.ly без здесь я поставлю двери
00:10:11
Я помещу это здесь как функцию, которая возвращает
00:10:13
консоль.log
00:10:20
Хорошо, теперь давайте начнем разрабатывать это
00:10:24
запущу этот файл сюда, красотка Алиса
00:10:27
8000 ОК, теперь просто для проверки Давай сделаем это
00:10:30
здесь очень простой раунд, так что я пойду
00:10:32
поставь app.t поставлю стойку поставлю
00:10:36
положить res.senge Привет, дорога, красавица, давай сохраним
00:10:40
сейчас здесь, в моем браузере, я собираюсь пойти туда
00:10:42
для localhost 8000 посмотрим, получится ли
00:10:45
ответит красотка ответь
00:10:48
Это уже работает, поэтому я собираюсь сделать еще один
00:10:51
напишите здесь, я подарю вам комплект
00:10:56
Эдж Экспресс
00:10:58
Сервер редакции
00:11:01
личное шоу, поэтому мы настраиваем здесь
00:11:03
Экспресс сейчас, я хочу объяснить
00:11:05
ты архитектура нашего API, окей
00:11:08
Так что давай, следуй за мной в этом
00:11:10
Ребята, это будет наша архитектура, ок?
00:11:12
Итак, начнем
00:11:14
ради этого парня я брошу его сюда
00:11:15
только для нас Только фокус
00:11:17
сейчас оно будет здесь
00:11:19
ребята
00:11:20
брось это сюда, ладно, пойдем
00:11:22
наша конечная точка, как и я, здесь
00:11:25
Я сказал, что это API, который мы собираемся создать
00:11:27
грубо, так что мы собираемся получить
00:11:28
barryuse пост домашнее животное и элита ок
00:11:31
итак, этот парень будет конечной точкой
00:11:35
Express, что мы определим И что?
00:11:37
каждая точка индикатора будет иметь свой контроль
00:11:39
что такое контроль контроль
00:11:42
в основном класс, который будет проверять
00:11:45
запрос в порядке и сделаю все, что угодно
00:11:47
мне нужно например
00:11:50
когда мы создаем пользователя Esse
00:11:52
контроль будет нести ответственность, например
00:11:54
проверив адрес электронной почты пользователя, а затем
00:11:56
контроль действительно тот парень, который идет
00:11:58
просто подтвердите запрос, он будет
00:12:00
получит запрос от Xpress и будет
00:12:01
проверить, посмотреть, все ли с ней в порядке и есть ли
00:12:04
все в порядке, вернись сюда
00:12:06
наши пользователи get, мы позвоним одному
00:12:08
репозиторий, и этот личный репозиторий - это он
00:12:11
характерна закономерность, называемая
00:12:13
шаблон репозитория, что он делает
00:12:15
по сути говорит нам абстрагировать все
00:12:18
логика базы данных для
00:12:20
внутренний интерфейс нашего приложения, который
00:12:23
что я сказал этим, что я хочу
00:12:24
в общем, скажи это здесь
00:12:27
этот парень будет интерфейсом
00:12:29
Я уверен, что будет, например, match get
00:12:31
чтобы привлечь пользователей И затем мы идем
00:12:33
создать еще один конкретный репозиторий
00:12:36
банк, который мы хотим использовать, который будет
00:12:38
реализовать этот интерфейс здесь, тогда
00:12:41
наш монго, от которого он будет зависеть
00:12:43
внутренний интерфейс нашего приложения
00:12:45
или какое там большое преимущество
00:12:47
Большим преимуществом здесь является то, что
00:12:50
люди хотят перейти с длинной БД на
00:12:52
Я дергаю например Головы какие-нибудь
00:12:54
еще один банк, нам просто нужно его создать
00:12:57
здесь новый парень, поэтому мы
00:12:58
Я мог бы создать, например, пост Грейс
00:13:01
получить репозиторий пользователей
00:13:05
и этот парень, с которым он общался
00:13:08
опубликовано, очевидно, поэтому оно будет опубликовано здесь
00:13:10
в этом примере Что случилось
00:13:13
Этот парень подчиняется этому интерфейсу
00:13:16
здесь и там мы могли бы просто
00:13:17
смените наш банк очень
00:13:19
легко. Это большое преимущество.
00:13:22
использовать этот репозиторий, а также мы
00:13:25
изолирует всю нашу логику, всю
00:13:27
ответственность за общение с
00:13:29
база данных для внесения вставок для получения данных
00:13:32
обновление базы данных удалить данные
00:13:34
от скамейки до занятий именно так
00:13:36
Уважает единую ответственность
00:13:39
что в основном говорит о том, что класс
00:13:41
у нее должна быть только одна ответственность и
00:13:44
должен взять на себя эту исключительную ответственность
00:13:46
очень хорошо, и это именно то, что
00:13:48
мы делаем этого парня и этого здесь
00:13:50
парень здесь, точнее этот парень
00:13:52
потому что это будет всего лишь
00:13:55
интерфейс, не так ли?
00:13:56
здесь пунктиром, но этот репозиторий и
00:13:58
Поняли ли вы репозиторий и как
00:14:00
за все он будет нести единоличную ответственность
00:14:03
связаться с банком в этом случае
00:14:04
несет полную ответственность за общение с
00:14:06
банк и ловить пользователей, а также это
00:14:09
контроль, это тоже хорошо оформлено
00:14:11
нет единой ответственности
00:14:13
что буква s у него будет как раз
00:14:15
ответственность за получение
00:14:18
запрос подтвердить этот запрос И затем
00:14:20
заключается в том, чтобы возложить эту ответственность на
00:14:23
поговори с банком о другом занятии
00:14:25
в данном случае это будет вот этот репозиторий
00:14:28
красота, так что это будет наше
00:14:29
Архитектура Красота, так что поехали, поехали
00:14:31
Итак, начнем создавать наш первый
00:14:34
контроль, да, так что поехали, как
00:14:37
мы сделаем это, мы создадим
00:14:38
здесь, в src, папка с названием control
00:14:42
красота и внутри сюда мы поместим
00:14:48
Я создам файл и помещу
00:14:50
получить пользователей косая черта получить пользователей Вот и все
00:14:53
заставить нас создать класс
00:14:56
папка под названием get user и
00:14:59
внутри него файл под названием getusers
00:15:01
Хорошо, и поехали, ребята
00:15:05
также создайте здесь еще один файл с именем
00:15:08
procols.ts, который будет иметь интерфейсы, которые
00:15:11
этот файл будет реализован Итак, теперь
00:15:13
Давайте определим, что интерфейс наш
00:15:16
тогда контроль — это наш контроль над созданием
00:15:19
интерфейс здесь называется получение пользователей
00:15:21
Контролер, наш контроль, он будет иметь
00:15:23
Есть метод, который я собираюсь вызвать
00:15:25
Рендалл здесь, а пока я буду
00:15:29
Верните его сюда и мы изменим
00:15:30
Это здесь, и я верну На
00:15:32
правда, я собираюсь экспортировать этот интерфейс
00:15:33
Хорошо, а теперь здесь, в Get Users, давайте создадим
00:15:37
на самом деле этот парень из класса Контроллер
00:15:39
Хорошо, давайте создадим экспертный класс.
00:15:42
Получает и пользователей
00:15:46
что будет реализовано
00:15:49
Орудия
00:15:52
получить пользователей
00:15:54
На самом деле, как я это назвал, так и поставлю
00:15:57
получить контроллер пользователей здесь, чтобы подать сигнал
00:15:59
который является интерфейсом, поэтому он будет
00:16:01
реализовать этого парня, которого я собираюсь нажать
00:16:02
против того, чтобы он импортировал красоту
00:16:04
и теперь я реализую метод здесь
00:16:07
И этот метод, ребята, проверят
00:16:10
запрос
00:16:12
Он выдаст вам запрос, поэтому я нажал
00:16:14
против бара, чтобы прокомментировать, и это будет
00:16:16
прямой вызов репозитория, который
00:16:21
Это именно то, что мы собираемся сделать
00:16:22
вот тогда, как я уже сказал, этот парень будет
00:16:25
быть интерфейсом, поэтому, когда
00:16:28
у нас есть внутренний слой, который в данном случае
00:16:30
это получить пользовательский контроллер, который будет
00:16:32
нужно вызвать внешний слой
00:16:34
она именно это хранилище
00:16:37
мы определяем этот интерфейс этого слоя
00:16:39
самый внешний слой внутри этого самого внешнего слоя
00:16:42
внутренний здесь, и что я хочу сказать
00:16:43
это в основном здесь, в файле
00:16:46
для совершения звонков мы создадим
00:16:47
интерфейс, который будет именно таким
00:16:50
передайте пользователям репозиторий. Хорошо, тогда я
00:16:53
создайте интерфейс под названием «Я попаду сюда»
00:16:55
репозиторий пользователей и этот парень у него будет
00:16:58
метод под названием get я поставлю get
00:17:02
здесь, и этот парень вернется
00:17:04
ребята, он вернется
00:17:06
Обещанием, верно, будет код А5
00:17:08
никогда не буду общаться с банком и все такое
00:17:10
больше, и он вернет список массивов
00:17:13
пользователей, верно, и этот пользователь — мы?
00:17:16
определим сейчас, тогда здесь, в нашем
00:17:18
src, я создам новый огонь I
00:17:21
я положу
00:17:22
models/user.ts и здесь я приведу
00:17:25
спортивный интерфейс и пользователь
00:17:28
и этот парень, который у него будет
00:17:30
иметь имя, которое будет строкой
00:17:32
также будет фамилия, которая будет
00:17:35
полторы строки и пароль
00:17:41
Хорошо, теперь мы собираемся импортировать это
00:17:44
чувак, ок, вот эти котята
00:17:47
в основном вернет список
00:17:50
пользователи для нас красотка вот и сейчас
00:17:52
что мы определили интерфейс нашего
00:17:54
репозиторий, поэтому мы сделали это здесь
00:17:57
мы собираемся ввести этого парня сюда
00:17:59
и мы воспользуемся еще одним принципом
00:18:02
очень важно, что вам нужно
00:18:04
знать в программировании, что впрыск
00:18:06
зависимости Другими словами, мы внедрим
00:18:09
этот репозиторий здесь, в нашем
00:18:12
контроль как зависимость Так как же
00:18:14
что мы делаем это здесь, в нашем
00:18:16
Получает контроллер, мы откроем
00:18:19
Строитель здесь и внутри я иду
00:18:22
положить
00:18:23
что он получит пользователей get
00:18:25
замена, которая будет "Я получаю пользователей"
00:18:29
депозитарий, и я положу сюда
00:18:31
скидка на получение репозитория пользователей на случай
00:18:33
вот как будет выглядеть получение пользователей
00:18:40
вкладчик здесь, в вашем конструкторе
00:18:48
ОК, ОК, теперь у нас есть
00:18:52
наш репозиторий здесь прямо и вспоминаю
00:18:54
этот парень, который будет общаться с
00:18:56
база данных на самом деле это будет
00:18:57
общаться с mongo DB понимает, что
00:19:00
Мы еще не создали этого парня, верно?
00:19:02
с этого момента мы создали только этот интерфейс
00:19:03
Через некоторое время мы создадим это
00:19:06
репозиторий здесь, который будет реализовывать это
00:19:08
интерфейс, и мы внедрим это
00:19:10
репозиторий и здесь, в нашем
00:19:12
контроль Вы увидите, как это здесь
00:19:14
Это будет круто чувак
00:19:16
Так приятно упростить это здесь
00:19:17
Ребята, этот синтаксис мы можем
00:19:19
просто сделайте это здесь и удалите
00:19:22
этот парень и сюда поставил приваты
00:19:27
удалить это Хорошо, это
00:19:29
то же самое, что мы делаем
00:19:30
раньше, но в гораздо большей степени
00:19:32
просто, да, всего в одной строчке мы уже
00:19:34
можно получить в конструкторе и
00:19:36
укажите сюда этого парня
00:19:38
наш класс красоты, поэтому этот доход
00:19:40
здесь
00:19:42
он проверит запрос и в этом случае
00:19:44
этот запрос не нуждается
00:19:46
никакой проверки, в основном получение
00:19:47
пользователи, нам не нужно ничего подтверждать
00:19:49
здесь, чтобы мы могли получить
00:19:52
ты строишь, что это будет Пробуждение
00:19:56
пользователей и вот что нам нужно
00:19:59
так вот красота и теперь эти пользователи
00:20:02
здесь будет только список
00:20:05
пользователей, и это именно то, что мы
00:20:06
хочу и теперь нам нужно вернуться
00:20:08
это здесь для клиента, поэтому мы
00:20:10
направил вызов в репозиторий здесь
00:20:12
и нам нужно вернуть этих пользователей
00:20:15
здесь, но, ребята, контроль будет
00:20:17
всегда возвращайте HTTP-ответ, окей
00:20:21
так что ответ например со статусом
00:20:23
код и с телом, потому что потому что
00:20:26
пример, если здесь есть ошибка
00:20:29
репозиторий, давайте попробуем
00:20:31
общаться с банком Но мы не
00:20:33
может, потому что возникла проблема
00:20:34
соединение банк дает что-то
00:20:36
поэтому мы хотим вернуть 500 за
00:20:38
пример для правильного пользователя, тогда какой
00:20:40
что нам лучше всего здесь делать
00:20:43
мы поместили все это сюда, внутрь
00:20:44
попытка Кот
00:20:46
красота
00:20:48
красота и вот мы возвращаем объект
00:20:51
например, с кодом состояния 200 и
00:20:55
тело пользователей и здесь в ошибке, которая есть
00:20:58
внутри кота мы возвращаем статус
00:21:01
код 500 и тело например я знаю
00:21:05
там звук
00:21:08
ок, тогда контрольная. Он всегда идет
00:21:11
верните сюда код состояния и тело
00:21:13
поэтому мы можем создать интерфейс
00:21:16
и для этого тоже, да, так что здесь, в звонках
00:21:18
Давайте создадим еще один интерфейс и собственно
00:21:20
этот интерфейс не будет использоваться
00:21:23
только благодаря этому контролю это будет
00:21:25
также используется другими элементами управления, такими как
00:21:27
например Вот этот этот этот
00:21:29
здесь, потому что, как я уже сказал, все это
00:21:31
элементы управления вернут тот же объект
00:21:33
Итак, здесь, внутри элементов управления папками
00:21:36
элементы управления, а не из папки Get Users. Давай
00:21:38
создайте файл с именем протоколы
00:21:40
Итак, этот файл будет иметь
00:21:43
протоколы, то есть интерфейсы
00:21:46
все интерфейсы управления, которые
00:21:48
общее между элементами управления Итак, давайте
00:21:50
создайте здесь интерфейс под названием http
00:21:53
ответ, который в основном будет иметь
00:21:55
код статуса, который будет числом и будет
00:21:57
иметь тело
00:21:59
это будет вот оно И на самом деле
00:22:01
мы можем получить это Тело как
00:22:03
здесь общий, поэтому это Тело будет
00:22:05
так что в принципе мы можем
00:22:07
сделай это здесь, и я экспортирую этого парня
00:22:11
и теперь это
00:22:12
мы поместим это здесь в конце звонков
00:22:15
получить пользователей. Итак, этот элемент управления будет
00:22:18
вернуть обещание
00:22:21
hdt и вот как мы вернем
00:22:25
что мы на самом деле поместим то, что
00:22:27
что этот доход вернется к нам
00:22:29
в данном случае это список пользователей
00:22:31
Хорошо, я напишу это так:
00:22:33
универсальный
00:22:35
список пользователей шоу мячей Смотри
00:22:39
Как здорово сейчас, если здесь, в Body for
00:22:41
пример, я возвращаю число, оно будет
00:22:44
дайте мне ошибку, что за боди
00:22:47
На самом деле, он допустил ошибку здесь, в нашем
00:22:50
Кот, потому что боди у него будет или
00:22:55
наш пользователь список пользователей, прав или
00:22:57
здесь ошибка или строка в случае ошибки
00:23:00
так что мы можем разместить это здесь
00:23:02
либо это будет буква t, либо строка, верно?
00:23:04
Это будет ошибкой, тогда ладно
00:23:07
теперь, если я добавлю пользователей, это прекратится
00:23:11
дай мне это, если я поставлю двойку
00:23:12
например, выдаст ошибку
00:23:14
В принципе мы не можем
00:23:16
вернуть номер здесь, в теле, потому что
00:23:19
нам нужно вернуть список
00:23:21
пользователи здесь посмотрите как круто
00:23:22
У нас уже есть этот тип безопасности.
00:23:24
скрипт, поэтому сюда я помещу пользователей
00:23:26
ХОРОШО
00:23:27
Я удалю этот комментарий здесь
00:23:30
красота, и теперь у нас есть
00:23:33
наш первый контроль Итак, поехали
00:23:35
подведем итоги того, что мы сделали на данный момент
00:23:36
отсюда мы создали наш контроль
00:23:39
факт, что get использует этот элемент управления, и мы
00:23:41
на самом деле ввел это сюда, внутрь него
00:23:43
мы еще не делали себе инъекции
00:23:44
дал понять, что мы получим здесь
00:23:46
в нашем конструкторе получить пользователей
00:23:49
репозиторий, который будет именно этим
00:23:51
парень здесь И этот котенок у него будет один
00:23:54
метод под названием getusers, который будет
00:23:56
вернуть нам список пользователей
00:23:57
и мы получим этот список
00:24:00
пользователи помещают эту переменную, и она будет
00:24:02
вернуть статус 200 с помощью
00:24:04
наше Тело здесь от пользователей красоты Что, если я
00:24:07
запусти что-нибудь здесь вместе с нами
00:24:08
Перейти на случай, если вы столкнетесь с ошибкой здесь
00:24:10
внутри мы вернем этот объект
00:24:12
здесь со статусом было 500 и с Телом
00:24:15
Конец есть только один, ладно, тогда поехали
00:24:17
оставить комментарий здесь
00:24:19
и пришлось расставить точки. Поставим gitcomite
00:24:21
Подходит для контроллера Edge
00:24:26
Хорошо, теперь мы создали это здесь
00:24:29
окей, теперь давай сделаем все остальное, пойдем
00:24:31
сделай это здесь, так что давай вообще
00:24:34
создайте класс, который будет общаться с
00:24:36
Мир БД, давай, я собираюсь создать его
00:24:39
папка здесь внутри src называется
00:24:41
пополнители
00:24:44
и здесь я создам парня по имени get
00:24:48
пользователи bar mongo получить пользователей
00:24:52
итак, здесь, в этой папке, находятся пользователи
00:24:54
Я помещу всех скептиков, которые
00:24:56
действительно поймает пользователей, и в этом
00:24:59
файл, я создам репозиторий, который будет
00:25:01
поймать пользователей Mongo DB Beleza
00:25:03
Так что давай поиграем в спорт
00:25:06
Класс mongo получает репозиторий пользователей
00:25:10
и он осуществит это, как это сделали мы
00:25:13
вот на нашей диаграмме это идет
00:25:14
реализовать интерфейс, который мы
00:25:17
определено там под нашим контролем. Итак, это
00:25:20
интерфейс здесь отличный, поэтому я поставлю его
00:25:23
это реализуется, я получаю пользователей
00:25:29
Я буду настаивать на этом для него
00:25:31
для меня важно
00:25:33
Дай мне подумать, что я неправильно написал
00:25:35
Давай я скопирую сюда, так будет проще.
00:25:39
На самом деле он не заботится обо мне
00:25:40
Я не знаю почему, но мне кажется, что я создал это
00:25:43
снаружи это неправильно, она немного сумасшедшая
00:25:47
иногда мы идем
00:25:49
импортировать вручную, я импортирую
00:25:51
Импорт
00:25:53
в Жетулио с.com.br
00:26:01
бар получить пользователей бар prorocos Beauty
00:26:06
теперь это выдаст мне ошибку, потому что
00:26:08
нам нужно реализовать это получить
00:26:09
пользователи правы, так что давайте нажмем на
00:26:12
укажите здесь o реализует интерфейс он
00:26:14
реализую для меня метод просмотра
00:26:15
какая красивая вещь, а пока, ребята
00:26:17
давайте просто вернем пустой список, и я
00:26:20
Я дам вот такой
00:26:22
на самом деле мы вернем пользователя
00:26:24
Любой здесь, я поставлю первым
00:26:26
Филип
00:26:28
я положу
00:26:32
я поставлю Рок
00:26:34
почту я поставлю [email protected]
00:26:40
я поставлю один два три
00:26:42
Красота
00:26:43
Теперь давайте сделаем следующее
00:26:46
назвать маршрут
00:26:49
это вызовет наш контроль
00:26:52
который позвонит нашему вкладчику только для того, чтобы
00:26:54
Мы видим, как кусочки собираются вместе, ясно?
00:26:56
так что здесь, в этом RC, на самом деле здесь, в
00:27:00
index, даже сделай это быстро, просто чтобы
00:27:01
покажу тебе, я поставлю один
00:27:03
маршрут здесь, который будет называться баром и
00:27:05
пользователей и здесь нам нужно вызвать
00:27:08
наш контроль в порядке, так что поехали
00:27:10
давайте создадим здесь наших пользователей get
00:27:14
который будет новым пользователем
00:27:18
что я передам контроль, то есть
00:27:19
именно в тот класс, в котором мы оказались
00:27:20
нужно сделать, но этот парень получит это
00:27:23
правильный репозиторий даже выдает ошибку
00:27:25
здесь ему нужно получить
00:27:27
переместить Итак, давайте создадим
00:27:29
наши монго получают замену стрелкам
00:27:42
сохраните здесь, на самом деле я собираюсь сделать
00:27:44
Следующим я поставлю S
00:27:47
отправлять
00:27:49
Мне вообще-то нужно оставить это здесь
00:27:51
ответь, я дам тот же ответ
00:27:53
кот русс
00:27:55
контроллер.чтение и теперь я собираюсь дать
00:27:58
отправь сюда в Горизонт
00:28:01
[Музыка]
00:28:14
чтобы было проще, я могу
00:28:16
просто получите тело или код состояния
00:28:18
отсюда я нажимаю кнопку D, чтобы
00:28:20
выбор следующего приведет к удалению красоты
00:28:24
так что теперь давайте посмотрим, есть ли у нас
00:28:27
здесь работает сервер
00:28:30
я начну здесь
00:28:34
Хорошо, теперь давайте получим доступ к этому маршруту
00:28:36
здесь, чтобы увидеть, что он вернется в
00:28:39
Итак, поехали, скоро поставлю
00:28:40
пользователи фиолетовых 8000 баров и посмотрите, как круто
00:28:43
Ребята, вот мы и вернулись Просто
00:28:46
вот этот объект, который мы определили
00:28:48
Так что детали уже работают
00:28:51
то, что мы здесь сделали, мы создали
00:28:54
наш репозиторий, который будет общаться с
00:28:56
У mongo DB скоро появится этот репозиторий
00:28:58
есть метод получения пользователей, который возвращает
00:29:01
список пользователей для нас
00:29:03
и этот котенок использует этот контроллер, он вызывает
00:29:05
Именно этот метод, а затем
00:29:08
ответ на этот метод здесь, в нашем теле
00:29:10
и мы возвращаем Тело
00:29:11
прямо здесь, в нашем пункте отправки и
00:29:15
Смотри, какая классная штука, чувак, если мы
00:29:17
хотел создать еще один репозиторий для
00:29:19
пример
00:29:21
создайте здесь класс под названием
00:29:26
Итак, этот класс здесь, давайте предположим, что
00:29:28
они будут общаться со станцией вместо
00:29:31
Монго, как она это осуществит?
00:29:33
интерфейс здесь, который является именно
00:29:34
интерфейс, который получает от нас управление
00:29:36
вы можете разместить этот репозиторий здесь
00:29:41
вместо Монго
00:29:43
и теперь наше приложение должно работать
00:29:45
таким же образом
00:29:47
Так что посмотри, как круто, если хочешь
00:29:48
изменить базу данных, как мы
00:29:50
используя обе инъекции зависимостей
00:29:52
как стокера тебе просто нужно поменять
00:29:55
класс, вам просто нужно добавить один
00:29:57
новый заполнитель, соответствующий интерфейсу
00:30:00
что наш элемент управления получает, делая это
00:30:04
Готовы ли вы сменить банк?
00:30:07
данные, и вы видите, что это очень просто, не так ли?
00:30:09
Очень хорошо, что мы используем хороший
00:30:11
архитектура Именно по этой причине наша
00:30:12
приложение очень и очень гибкое
00:30:14
Хорошо, я удалю этого парня здесь
00:30:16
что мы не будем использовать мы будем использовать
00:30:17
просто монго, я дам один
00:30:19
управление здесь, чтобы вернуть все как было
00:30:20
Перед балом урок красоты сейчас
00:30:22
давайте действительно соединимся с миром БД
00:30:25
и читайте, что пользователи действительно дают
00:30:28
Коллекция внутри, так что поехали.
00:30:30
Я собираюсь использовать Docker, чтобы загрузить один
00:30:33
udb на моей машине, если он у вас есть
00:30:35
Docker настроенный Docker Composite
00:30:36
настроено, также вы можете следить здесь
00:30:38
со мной, если у тебя его нет, я объясню
00:30:40
для вас, как мы можем создать
00:30:43
новорожденный в мире DPA, который
00:30:45
Мы не собираемся использовать Docker, ясно?
00:30:46
сначала Как использовать Docker Потом я
00:30:48
Я покажу вам, как можно использовать это монго
00:30:51
dbatras, это очень просто, не волнуйся
00:30:53
Итак, давайте создадим файл здесь
00:30:54
называется Docker Compose Dot Yemon Vou
00:30:58
передать управление V здесь, в файле, который я
00:31:01
Я скопировал это, и вы можете скопировать этого парня здесь.
00:31:03
из репозитория, который я оставлю здесь
00:31:05
Описание этого проекта вы можете ввести здесь
00:31:07
В файл скопируйте все это и вставьте туда
00:31:09
в основном мы собираемся начать длинный
00:31:11
с корневыми учетными данными и паролем и
00:31:15
он будет работать на этом порту, здесь ничего нет
00:31:17
тоже, ок, я нажму Ctrl j и
00:31:20
в другом терминале сделаю докер
00:31:23
с поднятой позой и тире D, чтобы он мог придать ему импульс
00:31:27
в режиме обнаружения, то есть придать ему импульс
00:31:29
в этом здесь и не оставаться внутри
00:31:31
контейнер Итак, я нажму Enter, поехали
00:31:33
посмотрим, откажется ли он от Up Beauty сейчас, я
00:31:35
PS дам докер посмотреть
00:31:36
здесь бегут контейнеры, мой монго
00:31:38
Теперь я собираюсь открыть базу данных монго с помощью
00:31:40
pass — небольшая программа, которую мы
00:31:42
Используется для общения с рукой ребенка
00:31:44
Тебе не нужно его открывать, я просто открою его.
00:31:46
здесь для тебя, и я попробую и
00:31:49
Я постараюсь связаться именно с
00:31:51
это монго, поэтому я положу его сюда
00:31:54
Альфенас
00:31:58
Подарю Коннект красотку они общались
00:32:01
шоу с мячом, так что наш монго уже там
00:32:03
бежишь очень быстро, если у тебя нет
00:32:06
докер не хочет настраивать, он не хочет
00:32:08
сделай это сейчас, ты сделаешь
00:32:09
Далее вы получите доступ к веб-сайту, который я
00:32:11
Оставлю в описании, оно длинное
00:32:13
DB Atlas, который взят из самой Mongo DB, которая
00:32:15
люди используют его для создания монгольских банков
00:32:17
онлайн в облаке. Итак, если вы получаете к нему доступ, он создает
00:32:21
после этого с твоим аккаунтом все в порядке
00:32:23
ты пришел сюда ради служения в этом аббатстве
00:32:26
Из True Services вы приходите
00:32:29
Постройте базу и выберете эту долю
00:32:31
вот тогда ты даешь создать
00:32:34
здесь мы можем выбрать кого угодно
00:32:36
Я выберу Сан-Паулу, даже несмотря на то, что он приближается.
00:32:39
по умолчанию выбрано в основном
00:32:41
регион, где будет находиться наш кластер
00:32:42
здесь я помещу имя, я оставлю его
00:32:45
этот нулевой кластер
00:32:48
Это займет немного времени, ладно?
00:32:50
пришел к этому классному экрану, который
00:32:51
этот экран важен, поехали
00:32:53
затем установите учетные данные точно так же, как
00:32:56
мы определили это здесь, мы будем
00:32:58
определите здесь, поэтому я поставлю корни
00:33:00
и пастор здесь в пароле будет равным
00:33:03
это важно, чтобы ты этого не сделал
00:33:04
забудьте, что мы собираемся использовать это здесь
00:33:05
позже пришло время пообщаться с
00:33:09
наша БД Монго через нашу
00:33:10
приложение Итак, я создам пользователя
00:33:13
не оставил его, потому что это мой пароль
00:33:15
Думаю, я поставлю один, два, три, хорошо
00:33:17
и тут и ты просишь мы поставим
00:33:21
0.0.0.0/0 это позволит вам
00:33:25
любой IP-адрес подключается к нашему монго
00:33:27
который находится здесь, в облаке, но этот IP идет
00:33:29
необходимо иметь логин Итак, наш
00:33:32
приложение не будет защищено, ясно?
00:33:33
Итак, я собираюсь закончить здесь, хорошо, я пойду
00:33:36
дать близкую концовку
00:33:38
Я собираюсь снять пометку с этой цели, я плакал
00:33:42
красота, это займет некоторое время
00:33:44
немного, но пока ладно
00:33:46
вот оно создано, мы можем следить за ним здесь
00:33:48
в нашем классе, так что ок, монго подскочило
00:33:51
Теперь я собираюсь сделать следующее, что собираюсь дать
00:33:54
комитет по этому репозиторию, о котором я не знаю
00:33:56
уже подарил, поэтому я собираюсь сюда, чтобы
00:33:58
мой из интерфейса vscode, который в
00:34:00
Иногда нам легче сделать то, что
00:34:01
приглашение здесь я сделаю приглашение
00:34:03
только этот парень
00:34:06
из двух здесь индекс пользователя-монаха
00:34:09
затем Feet Edge Mongoget и пользователи
00:34:13
репозиторий, шоу мяча, и теперь я собираюсь дать
00:34:16
Комета в этом докере с позой здесь я
00:34:18
Я поставлю Fit Edge
00:34:20
докер с позой с
00:34:24
ХОРОШО
00:34:26
покажите ребята, так что теперь мы собираемся
00:34:28
общаться соединяться я не знаю, почему я
00:34:30
Я говорю о том, что общение – это соединение с
00:34:33
мир БД, поэтому я сделаю это
00:34:35
сделайте следующее, я создам
00:34:37
Дай мне подумать здесь, я создам это здесь
00:34:40
в этом CRC парень по имени Бандейра
00:34:45
база ок И вот что я собираюсь поставить
00:34:48
mongo.cs закрыт здесь мы создадим
00:34:52
объект, который будет, который будет иметь
00:34:55
методы, отвечающие за общение
00:34:57
для связи и общения с
00:35:00
длинная БД, окей, я собираюсь создать ее здесь.
00:35:03
Дайте ему EcoSport и мы
00:35:04
Я буду использовать этого парня в других местах
00:35:07
создай монгольского парня по имени Клинт
00:35:08
красотка и этот парень у него будет
00:35:11
у него будет метод Connect
00:35:15
который будет точно связан с
00:35:18
наш банк вернет обещание
00:35:20
void не вернет ничего внутри
00:35:21
от него
00:35:23
и теперь здесь, в этом Google-клийте, это происходит
00:35:25
быть одиноким, ребята, это
00:35:27
синглтон в основном любой уровень
00:35:30
наше приложение сможет вызвать это
00:35:32
Mongo clight и его экземпляр будут
00:35:34
всегда одно и то же для всех этих вызовов
00:35:37
Теперь ты поймешь это лучше, ладно?
00:35:38
Следуй за мной и станет легче
00:35:39
чтобы вы поняли, когда мы констатируем
00:35:41
реализовать этого парня здесь, в
00:35:43
Подключиться, что мне делать, я собираюсь
00:35:44
получить некоторые данные от Монго, которые мы
00:35:46
нужно подключиться к нему, тогда
00:35:48
сначала это URL, который я оставлю как
00:35:50
пустая строка для имени пользователя
00:35:54
который мы определили, и пароль, который
00:35:55
мы также определили
00:35:58
круто, этих ребят мы собираемся получить
00:36:01
наша точка AMV, так что здесь я создам
00:36:03
новые переменные, которые я буду называть
00:36:06
URL-адрес базы данных mongo и здесь, если у вас есть
00:36:10
работая на докере, вы поставите
00:36:13
localhost 270 17, если он у вас запущен
00:36:17
здесь, в Атласе, ты придешь сюда
00:36:20
Подключитесь, вы будете
00:36:23
Подключите приложение Красота и вы
00:36:25
ты собираешься скопировать этого парня?
00:36:28
скопируй этого парня и поставишь его
00:36:32
здесь мы на самом деле собираемся сделать это по-другому
00:36:34
извините, ребята, давайте сделаем это здесь
00:36:36
другое, ты скопируешь только это
00:36:38
здесь о
00:36:39
увидеть этот кластер здесь, чтобы вы
00:36:42
скопирует этот кластер в сеть точек
00:36:44
и вы вставите это сюда на случай, если захотите
00:36:47
в Атлас красоты и потом поставим
00:36:49
теперь наше имя пользователя, которое я ввел
00:36:51
Руты и пароль, который вы туда ввели
00:36:55
в моем случае это будет пароль
00:36:56
красота, ок, теперь здесь, в индексе в монго
00:37:00
извините, в mongo clight этот URL будет
00:37:03
процесс
00:37:08
НАС
00:37:13
будет
00:37:19
пароль
00:37:24
ХОРОШО
00:37:26
Хорошо, теперь нам нужно установить
00:37:28
новая БД, да, так что давайте добавим немного Эдмонго
00:37:31
малыш
00:37:34
Давайте импортируем это сюда, тогда я пойду
00:37:37
импорт из БД
00:37:39
подождите, пока оно установится здесь
00:37:44
Жоао установил, теперь будем импортировать
00:37:47
Лонг Д.Б. - монгольский парень по имени Клинт.
00:37:52
и поскольку здесь оно имеет то же имя, что и
00:37:54
наш объект выдаст ошибку, поэтому я
00:37:55
Я импортирую его так же, как
00:37:58
Клинт импортирует его только как монго.
00:38:00
лучше я импортирую другого парня
00:38:02
называется DB, которую мы будем использовать с этого момента
00:38:04
немного ок, теперь здесь, в Connect a
00:38:07
мы идем
00:38:09
сначала определим истину, мы
00:38:12
создайте здесь внутри нашего объекта два
00:38:14
свойства первым будет
00:38:16
Клинт и этот парень, которым он собирается стать
00:38:19
Underfinite сейчас в порядке
00:38:23
и здесь у нас также будет БД, которая
00:38:25
Это будет определенная вещь, которую я уже собираюсь сделать
00:38:26
объясни тебе, ок, теперь пойдем
00:38:30
создайте клиентскую константу, которая будет новой
00:38:33
монго
00:38:35
кто этот парень, которого мы импортировали
00:38:37
здесь красота
00:38:40
и здесь мы передадим URL-адрес и
00:38:44
объект здесь отменен, и здесь мы
00:38:46
поместим наше имя пользователя и нашу
00:38:48
пароль, о чем мы говорим
00:38:50
здесь я хочу создать клиента
00:38:52
БД Mongo, которая будет с этим взаимодействовать
00:38:54
URL с этими учетными данными
00:38:57
круто, он здесь делает ошибку, потому что
00:38:59
этот URL может быть недостаточным, потому что
00:39:01
этот парень может существовать, а может и не существовать
00:39:04
Что мы можем здесь сделать, я могу
00:39:05
сделайте следующее, если у вас здесь есть этот парень
00:39:08
в точке AMV мы используем его, если нет
00:39:12
мы используем
00:39:15
местный хост 27017
00:39:19
и тут такая же мелочь, юзернейм Давай
00:39:21
поместите сюда несколько шаблонов, да?
00:39:22
наберите root и вот оно, оно вам не нужно
00:39:26
правда, давайте просто оставим это по URL
00:39:28
красота, теперь мы идем
00:39:31
сделайте следующее, мы создадим
00:39:33
парень по имени constit DB, который будет папой
00:39:35
база фактов, которая будет clint.db и
00:39:39
здесь я напишу имя дадейры
00:39:41
база, которую мы хотим создать в мире
00:39:43
я поставлю еще я поставлю
00:39:45
UsersDB здесь отлично, и теперь мы идем
00:39:49
дать Клинту скидку, равную покупателю
00:39:52
который мы только что создали здесь и
00:39:54
Скидка на БД, равная АБР, который мы закончили
00:39:57
создать здесь выдаст ошибку
00:39:59
пишу, потому что монгольского климата нет в
00:40:02
В прямом эфире вам ответят
00:40:05
чувак, этот парень собирается начать определенное дело
00:40:08
но может быть и монгольского типа
00:40:10
Клинт, именно это и делает этот парень.
00:40:12
вот возвращается к нам
00:40:15
Итак, как нам сделать это в первую очередь?
00:40:17
нам нужно сделать пирсинг здесь
00:40:18
стать карликом, а затем обливаться, как монго на
00:40:23
Это правда, что это тот парень, с которым мы
00:40:24
для всех, детка, и здесь одно и то же
00:40:27
затем СДБ
00:40:31
шоу с мячом, и вот мы здесь
00:40:32
в основном ты говоришь об этом парне
00:40:35
Клинт, возможно, он недоразвит, или он
00:40:37
это может быть Монго и эта БД, или она может
00:40:40
быть недостаточно точным или это может быть adb и
00:40:43
эта БД, которая на самом деле будет иметь методы
00:40:45
который мы будем использовать для чтения
00:40:48
Коллекция, например, поэтому мы
00:40:49
Например, вы можете написать детскую точку
00:40:51
Коллекция пользователей А потом найдите здесь
00:40:55
это именно то, что мы собираемся сделать
00:40:57
через некоторое время в нашем депозиторе
00:40:59
Так красиво
00:41:01
мы закрылись
00:41:04
Готовы ли вы по-настоящему соединиться с
00:41:07
Mongo, и давайте сделаем следующее здесь, в
00:41:09
индекс
00:41:10
Я хожу
00:41:11
Сначала я создам такую ​​функцию
00:41:14
Я пойму, почему я назову это
00:41:17
чувак, и вот я подожду
00:41:21
Монго Клинт, вот что у нас получилось
00:41:24
творить и я подарю тебе красоту Connect
00:41:29
и здесь я поставлю точку Listen
00:41:31
вообще-то, давайте посмотрим здесь все
00:41:35
здесь внутри
00:41:39
идите сюда
00:41:41
красотка, почему я сделал эту роль
00:41:43
Потому что это синхронность, верно?
00:41:45
нам нужно заколлировать с белыми
00:41:47
и поскольку мы не можем позвонить одному
00:41:49
функция с etford, такая функция, которую я
00:41:51
Я создал эту функцию mei, чтобы сделать
00:41:54
этот, чтобы остаться рядом со всеми нашими
00:41:57
приложение, в основном я собираюсь переместить это
00:41:59
парень тоже здесь, так что я
00:42:02
поставлю после Connect
00:42:03
важно, чтобы я поставил это после
00:42:05
Подключайтесь, мы оставим это здесь
00:42:06
красивее положить в файл
00:42:08
отдельно, но всему свое время, пойдем
00:42:10
спокойно и здесь, я позвоню
00:42:12
наша окружающая среда, ок, я объясню этот конфликт
00:42:15
И здесь красота
00:42:18
закрыто, ребята, и я перенес линию
00:42:19
удерживать alt, если удерживать alt
00:42:22
нажмите правильно, мы можем переместить
00:42:24
очень классная строчка здесь
00:42:26
Хорошо, теперь давайте перезапустим наше приложение
00:42:29
я дам один
00:42:34
он допустил ошибку, посмотрим, что
00:42:36
О, потому что наши URL-адреса, ребята, нужны
00:42:40
начните с такой длинной БД
00:42:43
если ты с Атласом, ты будешь
00:42:46
поставь этот длинный сервер БД, тогда ок
00:42:49
Я сделаю следующее, чтобы помочь вам, если
00:42:51
у вас есть с Атласом, вы поставите
00:42:53
следующий o в моем случае вот и все
00:42:56
ставь длиннее, детка
00:42:58
но СРВ именно такой, как здесь
00:43:04
красота, а потом ты поместишь кластер
00:43:08
вот, покажи, вот ты это сделаешь
00:43:11
Правильно, поэтому я собираюсь прокомментировать это
00:43:14
здесь с контролем, просто чтобы посмотреть, так ли это
00:43:17
подключу я дам один два три
00:43:19
здесь
00:43:23
Посмотрим, подключится ли, ладно?
00:43:25
ничего не дал, и здесь мы можем даже
00:43:28
дайте лог, ребята, если он сможет его получить
00:43:30
соединиться с миром БД, мы можем
00:43:32
здесь долго даже на нашем монгольском
00:43:36
Клинт поместил console.log
00:43:39
подключил длинную БД, чтобы мы могли иметь
00:43:42
конечно, он действительно связан
00:43:43
потому что, если он не доберется сюда, это
00:43:45
потому что здесь была ошибка, ок, тогда
00:43:47
красота, которую он связал с миром БД
00:43:49
просто чтобы прояснить это для тебя
00:43:52
вот если вы используете Atlas и
00:43:55
это вот если вы используете
00:43:57
docker Итак, я собираюсь разместить здесь «ПСЖ»
00:43:59
мой пароль докера, и я прокомментирую
00:44:00
этот парень, я собираюсь перезапустить свой сервер
00:44:04
посмотрим, подключится ли он
00:44:06
если вы подключили шоу, то мы сделали
00:44:09
соединение с БД mongo, давайте сделаем
00:44:10
комитч, так что я возьму на себя смелость
00:44:13
Край
00:44:15
Монгольский Клинт с соединением mongo DB
00:44:18
поэтому мы добавили Клинта, у которого есть
00:44:20
наша связь с БД Монго
00:44:23
Хорошо, а теперь давайте, ребята, позвоним
00:44:27
наш монго здесь, в нашем репозитории
00:44:28
поэтому вместо возврата этого списка
00:44:30
здесь мокада, прямо с данными жесткого кода здесь
00:44:34
давайте на самом деле назовем нашу длинную БД
00:44:37
Так давай, помни, что я тебе говорил
00:44:38
ты, это будет да
00:44:40
осень потому что теперь мы такие как мы
00:44:44
Ты назвал этого парня «Коннектом» внутри?
00:44:47
нашего индекса, когда мы помещаем
00:44:50
пример вызова этого маршрута и этого маршрута
00:44:52
позвоните в наш репозиторий здесь, в пределах
00:44:55
заменой этому монгольскому Клинту будет
00:44:57
эти два парня определили, верно?
00:45:00
это будут клайт и ребенок, потому что они
00:45:02
были определены здесь, в Индексе красоты
00:45:04
Так это одно да, другое мы
00:45:06
в основном имеет объект
00:45:08
что одинаково на протяжении всего цикла
00:45:11
жизнь нашего приложения, то есть здесь, в
00:45:14
Подключитесь, мы создали экземпляр этого парня и
00:45:17
изменил некоторые его свойства и здесь
00:45:19
на другом агенте нашего приложения в
00:45:22
другой Давайте поместим это в другой в другой
00:45:25
слой в данном случае слой этого репозитория
00:45:27
мы назовем тот же объект, который будет
00:45:29
будь точно таким же, как мы
00:45:31
установлен здесь, но со свойствами
00:45:33
здесь другое, если Connect меняет клиента
00:45:35
и тоже меняет БД, так что я хочу
00:45:38
сказать это здесь, в нашем
00:45:39
предлог мы можем просто
00:45:40
сделайте следующие пользователи будут пробуждёнными
00:45:44
длинный клиент
00:45:47
БД, потому что, помня об этом БД, она
00:45:51
определено, потому что мы назвали это
00:45:52
подключиться к нашему индексу
00:45:55
. Коллекция и сюда я буду помещать пользователей
00:46:05
все данные на самом деле все
00:46:08
объекты, находящиеся внутри этого
00:46:09
Собирайте и превращайте их в умуарай и
00:46:11
это Away - тип с документами
00:46:16
Я имею в виду, я имею в виду, что мы можем
00:46:20
отправьте этот документ, чтобы стать пользователем
00:46:23
верно, в данном случае наш гильзер здесь, потому что это
00:46:26
Собственно, это то, что мы собираемся там оставить.
00:46:27
на скамейке, прямо в конце. Так как же
00:46:29
мы делаем это здесь, в Collection a
00:46:32
мы собираемся разместить здесь общего пользователя
00:46:33
Помня, что я объясняю это подробнее здесь
00:46:35
подробно в моем курсе по типу
00:46:37
сценарий, разве это не нечто гораздо более продвинутое, чем
00:46:39
Я точно не буду здесь преподавать
00:46:41
иначе это видео сейчас будет огромным
00:46:42
Если мы наведем курсор мыши на
00:46:44
мы видим, что наш
00:46:47
наша переменная пользователей — это пользователь с идентификатором
00:46:51
этот идентификатор мы сделаем следующее, чтобы
00:46:53
Я просто покажу тебе
00:46:55
поставь Used 0. у него это есть потому что это
00:46:59
ID — автоматически создаваемое свойство.
00:47:01
длинный БД, ок, потом он говорит
00:47:05
Именно потому, что эти пользователи будут
00:47:08
список пользователей, у которых есть это подчеркивание
00:47:11
id и хорошо думаем здесь, по-нашему, и
00:47:14
мы забыли указать здесь идентификатор
00:47:16
для нашего пользователя Давайте определим здесь
00:47:17
красотка, давай пригласим вот этого
00:47:19
пользователь, которого мы изменили, поэтому Fit Edge на
00:47:23
пользователь ок
00:47:26
Хорошо, я удалю этого ветеринара здесь.
00:47:29
Хорошо, и теперь, ребята, у нас есть один
00:47:32
здесь небольшая проблема, потому что если мы
00:47:35
вернуть наших пользователей
00:47:38
Он собирается уйти, да? Он собирается оставить нас.
00:47:40
верните этого пользователя сюда, но этих пользователей
00:47:45
у него есть наш миди, да, у него его нет
00:47:49
этот идентификатор здесь, потому что, как я уже сказал,
00:47:52
подчеркните, что это монго по умолчанию для Mongo
00:47:55
не буду сохранять этот идентификатор здесь, поэтому
00:47:57
нам нужно преобразовать этот идентификатор с помощью
00:47:59
подчеркивание для нашего идентификатора пользователя
00:48:01
Как я уже сказал, написано, так не будет
00:48:02
определите это сейчас, но вы
00:48:05
понимаешь, прямо в монго у нас будет
00:48:07
подчеркнутый совет, и он нам нужен
00:48:09
вернуть Edi без подчеркивания, что
00:48:11
именно от нашего пользователя так, чтобы
00:48:13
будь более реалистичным, мы можем поговорить
00:48:16
следующее, что будет у нашего монго
00:48:20
именно пользователь, но этот пользователь не будет
00:48:25
есть идентификатор, поэтому мы будем использовать его
00:48:28
пропускать
00:48:29
идентификатор пользователя, теперь он меня не пускает
00:48:32
ответь, почему я здесь говорю
00:48:34
для Типа я уже говорю, что в пределах
00:48:37
БД Mongo в моей коллекции пользователей I
00:48:39
У меня будет несколько пользовательских объектов, но не
00:48:43
будет иметь поле идентификатора, т.е. если я получу
00:48:46
пользователи ноль поставили точку, заметив, что
00:48:49
теперь у него нет удостоверения личности, потому что мы
00:48:50
по сути, это говорит о том, что идентификатор не имеет
00:48:52
будет существовать у этого пользователя здесь, хотя он
00:48:55
будь здесь, в этом интерфейсе, правда
00:48:58
делает именно это, он как бы удаляет
00:48:59
свойство интерфейса, тогда
00:49:01
Чтобы решить эту проблему, мы идем
00:49:04
вернуть пользователей
00:49:07
Я сделаю следующее
00:49:11
верните все, что есть у пользователя, и идентификатор будет
00:49:16
быть таким же, как идентификатор
00:49:19
точка Теперь да, вообще-то вот оно
00:49:24
неправильно, он все равно вернет идентификатор с
00:49:26
подчеркни для меня, потому что я
00:49:27
используя разворот здесь, поэтому я сделаю
00:49:29
Далее я собираюсь забрать отсюда удостоверение и
00:49:33
Я возьму остальное, и теперь я
00:49:35
вернуть все, что есть внутри этого Запада
00:49:38
то есть все свойства, кроме
00:49:40
ID И тогда я поставлю ID, равный i из
00:49:44
Красота моста, это должно решиться здесь
00:49:47
Это было немного запутанно, дальше будет больше
00:49:48
Конечно, когда у нас действительно есть
00:49:50
пользователь там, в нашем банке, ты увидишь
00:49:51
Как это будет работать?
00:49:54
А теперь, ребята, поехали
00:49:57
посмотреть, работает ли наш сервер
00:50:00
ОК, и давайте доберёмся до Барры Уилсон.
00:50:03
теперь посмотрим, что произойдет
00:50:04
такой безумный фиолетовый 8000
00:50:07
и он вернул пустой список, потому что
00:50:10
У нас все еще нет ничего в мире
00:50:11
но ты видишь, что мы уже на самом деле
00:50:14
получение данных от Монго, именно потому, что
00:50:16
наш банк пуст, так что это имеет смысл
00:50:18
он возвращает пустой список для
00:50:19
Хорошо, ребята, давайте сделаем комедию.
00:50:21
вот я открою терминал
00:50:25
Я тут поменяю терминал, подарю тебе комплект
00:50:27
туда из точки Гуй
00:50:31
получить пользователей
00:50:41
репозиторий фактически ловит пользователей
00:50:44
mongodb Хорошо, давайте щелкнем здесь
00:50:46
сейчас и мы создали наш первый
00:50:49
Итак, наша структура здесь?
00:50:51
Это уже круто, правда?
00:50:54
контроль, который звонит нашему вкладчику, который
00:50:57
это интерфейс и у нас есть класс
00:50:59
который реализует этот репозиторий и это
00:51:01
Класс ловит пользователей Mongo DB, чувак
00:51:04
сенсационно, поэтому мы сделали первые
00:51:06
часть нашей архитектуры прямо здесь
00:51:08
Теперь давайте сделаем вот это, которое будет
00:51:11
интереснее, итак, поехали
00:51:13
создаст пользователей с косой чертой и создаст
00:51:15
Создайте и используйте контроллер, который будет следовать
00:51:17
та же самая структура здесь, верно, она будет иметь
00:51:19
репозиторий, который будет интерфейсом, а затем
00:51:21
мы собираемся создать класс
00:51:24
Mongo, который будет реализовывать интерфейс
00:51:26
Итак, начнем
00:51:28
на самом деле здесь внутри элементы управления
00:51:30
начнём с замены вот она
00:51:33
Всегда хорошо всегда начинать с
00:51:34
самый внешний слой, да?
00:51:37
внешний Считается, что в более
00:51:40
внешний — это именно слой, который идет
00:51:42
поговорить с внешним агентом, который в данном случае
00:51:44
Это база данных, так? Итак, слой?
00:51:46
самая внешняя часть нашего приложения видит
00:51:49
Этот поток именно такой, потому что
00:51:51
Она разговаривает с агентом снаружи
00:51:54
наше приложение, которое представляет собой базу данных
00:51:55
Итак, давайте начнем с ее красоты.
00:51:58
здесь, в репозиториях. Давайте создадим новый
00:52:01
файл здесь называется get user mongo na
00:52:04
правда это ящик
00:52:07
пользователь/создать пользователя красота И этот парень он
00:52:11
будет реализовывать интерфейс, верно?
00:52:13
нам нужно создать его под нашим контролем
00:52:15
Итак, здесь мы создадим Создать пользователя
00:52:18
Создать панель пользователя
00:52:23
на самом деле мы создадим протоколы здесь
00:52:25
действительно
00:52:27
procols.ts и здесь я создам Экспорт
00:52:30
интерфейс я создание
00:52:35
и у этого парня будет свой метод
00:52:37
называется Создать пользователя
00:52:39
который вернет обещание с
00:52:42
пользователь, и я импортирую этого пользователя
00:52:44
отсюда
00:52:46
и это Создать пользователя, ребята, это будет
00:52:48
получать параметры, потому что для
00:52:51
создаем нужного нам пользователя
00:52:52
просто пройди
00:52:55
эти ребята здесь, так что за
00:52:59
мы можем сделать, мы можем создать
00:53:01
Чувак, вот этот интерфейс называется
00:53:05
Экспортный интерфейс
00:53:08
создает и здесь мы помещаем
00:53:11
все, что мы хотим, чтобы пользователь
00:53:13
передать запрос на создание
00:53:15
пользователь Итак, я хочу, чтобы он прошел
00:53:16
имя, я хочу, чтобы оно прошло последним
00:53:20
имя
00:53:21
пароль
00:53:24
и электронное письмо. Я не хочу, чтобы в нем передавался идентификатор.
00:53:28
здесь мы сгенерируем его
00:53:31
автоматически, ок, так что вот и я
00:53:34
Я помещу это здесь Создать пользователя Я помещу это
00:53:38
Я положу это сюда Создать пользователя
00:53:43
Теперь здесь, в нашем монго Create
00:53:46
пользователь, мы создадим класс
00:53:49
вызов mong Create и пользователя, который идет
00:53:52
реализовать
00:53:55
Ух ты
00:53:57
прощение Создание
00:53:59
Я дам ему контраргумент здесь
00:54:02
сделай маску скрипта тапа. Посмотри, что
00:54:04
красивая вещь
00:54:05
и он уже задал здесь параметры
00:54:08
круто, и я собираюсь превратить этого парня в
00:54:11
Синхронная красота, и мы тоже начнем
00:54:13
используйте этот монгольский клинт, чтобы получить доступ к
00:54:15
наша длинная БД, так что давайте сделаем
00:54:18
далее мы вставим сюда данные
00:54:23
в нашем банке, потому что ты помнишь, что я
00:54:25
Я сказал вам, кто будет проверять,
00:54:28
данные верны, т. е. если адрес электронной почты
00:54:31
действителен, например, если пароль длиннее
00:54:33
из шести персонажей я не знаю ни одного
00:54:35
определите, кто будет играть эту роль
00:54:38
валидатором будет Контроллер, помните
00:54:40
что я сказал в начале Итак, у нас есть
00:54:42
исходя из принципа, что если мы
00:54:44
прибудут сюда, в репозиторий, то есть, если
00:54:47
мы придем к этому методу, если этот метод
00:54:49
называется означает, что эти
00:54:51
параметры действительны на 100%, потому что если
00:54:54
они не были 100 действительными нашими
00:54:56
начальство не позвонило этому парню, а он уже
00:54:59
перед этим выдаст пользователю ошибку
00:55:00
так что здесь нам не нужно делать
00:55:02
никакой проверки, как я сказал
00:55:04
здесь это соответствует принципам твердого сингла
00:55:07
основная ответственность, потому что это
00:55:10
класс только вставит его в базу данных и ничего
00:55:12
но тот, кто будет проверять данные, будет
00:55:14
контроль, так что здесь мы сделаем
00:55:16
Вот именно, давайте вставим данные
00:55:18
в нашем банке как это сделать я подарю
00:55:21
один подождет, монглет, давай импортируем его
00:55:23
здесь точка БД точка Коллекция я буду
00:55:27
поместите пользователей, чем Коллекция, которую
00:55:29
мы хотим вставить данные и вот я
00:55:31
Я вставлю один в первое место и
00:55:34
поставить разрешения
00:55:35
Хорошо, и этот парень, ребята, он вернется
00:55:38
для нас объект, который я сделаю
00:55:40
Разрушение уже здесь, и этот парень его получит.
00:55:43
определенный идентификатор, который является идентификатором пользователя, который
00:55:46
был вставлен и что мы можем сделать
00:55:48
здесь мы можем найти один
00:55:50
ищу этот идентификатор, чтобы узнать, есть ли он
00:55:52
был фактически вставлен в банк и
00:55:54
верните этого парня сюда позже, потому что
00:55:56
Нам нужно вернуть пользователя сюда, верно?
00:55:58
Итак, давайте дадим ему пользователя, это будет
00:56:02
равный.dbs
00:56:07
найди одну и здесь помни, что я
00:56:10
Я говорил тебе, что внутри отца
00:56:14
будет подчеркивание, и вот мы здесь
00:56:15
вам нужно указать идентификатор здесь с подчеркиванием
00:56:18
будет то же самое, что и запуск Beauty сейчас, если
00:56:23
не имеет пользователя, означает, что
00:56:26
наш пользователь не был создан таким образом
00:56:27
здесь что-то пошло не так
00:56:30
мы собираемся троллить Новая ошибка
00:56:32
пользователь не создает Теперь, если мы его нашли
00:56:38
этот пользователь здесь, то есть, если мы этого не сделаем
00:56:40
осенью в Ресифи мы будем
00:56:42
верните нашего пользователя сюда, но помните
00:56:45
Ребята, у этого пользователя есть этот идентификатор, ясно?
00:56:49
Вон тот Эдир, тот из кома
00:56:52
подчеркните, поэтому нам нужен еще один
00:56:54
сделать это преобразование Итак, как же
00:56:56
мы делаем это, мы можем использовать
00:56:57
Разрушение здесь, ох, вот и я.
00:57:00
получить идентификатор пользователя и все остальное
00:57:03
и я верну идентификатор будет равен
00:57:07
Идентификатор точки X, и я верну всю
00:57:10
отдыхайте, помня, что у Раша есть все
00:57:13
свойства Взяв этот идентификатор и для
00:57:15
чтобы было понятнее, на самом деле он дал
00:57:17
ошибка, посмотрим, что он дал
00:57:21
Смитиндер говорит от типа пользователя
00:57:24
потому что здесь, в Collection, мы
00:57:27
тебе нужно это опустить, запомни это
00:57:30
мы включили это в шутеры
00:57:32
замена Я собираюсь поговорить с этим парнем здесь
00:57:36
к нам вернется пользователь, который
00:57:38
у него нет ID Beauty, теперь он работает
00:57:42
Он закрыт, так что мы здесь, ребята.
00:57:45
перепросматривая здесь, мы создаем
00:57:47
пользователь, мы ищем этого
00:57:50
пользователь, чтобы узнать, действительно ли он был
00:57:51
создается, если он не найден
00:57:54
означает, что он не был создан.
00:57:56
мы собираемся совершить ошибку
00:57:57
И если оно будет создано, то есть если это здесь
00:58:00
найден, мы вернем его
00:58:03
здесь заменяем наш ID на Dr Line
00:58:05
около 100 подчеркиваний, что именно
00:58:07
что нам здесь нужно, красота
00:58:10
закрыто Вы можете даже задаться вопросом, Фелипе
00:58:13
Почему бы нам не разместить здесь удостоверение личности?
00:58:16
Проще не станет, и тогда, чувак, я говорю:
00:58:19
для тебя, если мы хотим измениться
00:58:20
банк, если бы мы хотели изменить сообщение
00:58:22
с этим для обратного прощения mongo DB
00:58:24
да, если бы мы хотели измениться со временем
00:58:26
детка за пост, но нам придется
00:58:28
еще раз поменяем наш интерфейс здесь и
00:58:30
Нам никогда не полезно менять свое собственное
00:58:31
модели хорошо, что наши модели они
00:58:34
являются неизменяемыми, или этот пользователь является
00:58:38
идеал состоит в том, чтобы он никогда не менялся, потому что он
00:58:40
веревка нашего приложения Подумайте хорошенько А
00:58:42
Пользовательская сущность — это веревка нашего премьер-министра.
00:58:44
Итак, если мы изменим это здесь, мы
00:58:45
Вам придется сменить несколько мест здесь, в
00:58:47
наше приложение, если мы изменим
00:58:48
например, здесь нам придется
00:58:50
поменяй несколько мест, посмотри, что получилось
00:58:52
здесь ошибка, возможно, здесь была ошибка
00:58:54
у гатвейлеров он еще и в спусковом крючке
00:58:56
репозиторий
00:58:58
Ой, здесь уже была ошибка, потому что мы изменились
00:59:00
наш цвет, поэтому он идеален
00:59:02
никогда не изменится, поэтому
00:59:04
Мы следим за тем, чтобы репозиторий соблюдал
00:59:07
наша Модель, а не наоборот красота ОК
00:59:10
так что мы действительно сделали это здесь
00:59:12
вставка в банк теперь давайте создадим
00:59:14
наш контроль, да, мы создаем супер
00:59:16
давайте вообще сделаем Комету в том числе
00:59:19
Итак, я собираюсь сделать Git Edge gitcomiti Edge
00:59:28
покажи сейчас, давай создадим свой
00:59:30
элемент управления, который будет иметь некоторые проверки
00:59:32
круто, так что здесь, в разделе «Создать пользователя», поехали
00:59:35
создайте интерфейс для этого элемента управления
00:59:38
Итак, давайте сделаем следующее: давайте создадим
00:59:41
вот интерфейс и ребята, поехали
00:59:43
тогда займись факторингом
00:59:46
улучшить большую часть кода, который у вас есть здесь
00:59:47
Не волнуйтесь, но давайте продолжим здесь
00:59:49
Я поставлю один, создаст пользователя
00:59:53
Контроллер
00:59:55
и у этого парня тоже будет доход
00:59:57
который вернет обещание с этим
01:00:00
http: что мы определили и как
01:00:03
общий, мы вернем пользователя, верно?
01:00:05
Так что, если все пойдет хорошо, мы
01:00:07
вернуться к пользователю или пользователю, который
01:00:09
была создана Такая красота теперь здесь, в
01:00:12
контроль, мы идем EcoSport Classic
01:00:21
для меня, о, шоу, я собираюсь надеть этого парня
01:00:25
так что и здесь мы введем наш
01:00:29
репозиторий Следуя нашему
01:00:32
Схема архитектуры Итак, я создам
01:00:35
вот строитель, этот парень идет
01:00:37
получить приват
01:00:44
красота, а теперь давай сделаем это
01:00:48
вот эта схема, да, так что я собираюсь поставить поезд
01:00:50
сюда поставь кота
01:00:52
и вот я иду
01:00:55
в
01:00:58
Я позвоню своему поставщику и все
01:01:01
разбирайтесь здесь, ребята
01:01:02
Давайте теперь перейдем к другому обсуждению
01:01:05
круто вот этот рендер он получит
01:01:08
думает, контролирует, как все идет
01:01:11
вернуть HTTP-ответ тоже
01:01:14
должен получить объект http, так почему
01:01:17
пример, он должен получить объект:
01:01:19
с телом и заголовками, например, тогда
01:01:23
Это именно то, что мы собираемся сделать
01:01:24
вот и этот парень получит один
01:01:28
другой объект, называемый http-запросом, который
01:01:31
тогда это будет интерфейс http Quest
01:01:33
поскольку мы создали интерфейс https
01:01:36
давай тоже создадим квест, да Ничего
01:01:38
это честнее, чем так, так что пойдем
01:01:40
Там мы создадим интерфейс под названием
01:01:42
httpQuest
01:01:44
и этот парень, которого он получит
01:01:46
Ребята, он тоже получит боди и
01:01:48
Я собираюсь надеть это тело
01:01:50
а чтобы нам было легче
01:01:51
уже использует один от Neve, который, возможно, здесь, но я
01:01:54
Я собираюсь положить сюда боди и более того.
01:01:55
запрос может получить он может
01:01:58
получить параметры, да?
01:02:00
Это необязательно, но она может его получить.
01:02:02
вот это тоже будет и что
01:02:04
что такое Poweramp, это похоже на то, когда вы
01:02:06
позвонить, например, в бар
01:02:07
пользователи/123 это один два три будет один
01:02:11
Poweramp, да, мы тоже можем его получить.
01:02:12
заголовки
01:02:15
которые здесь будут еще и заголовки, да
01:02:18
так что это все, что мы можем
01:02:20
получу наш запрос, поэтому я
01:02:23
возьми этот интерфейс и я поставлю
01:02:24
здесь, под нашим контролем
01:02:26
Хорошо, тогда наш творческий контроль
01:02:29
пользователь получит этот объект и
01:02:31
внутри этого объекта находится наше Тело, которое
01:02:34
мы только что определили и внутри этого
01:02:36
Тело, в котором будет все, что нам нужно
01:02:37
определено здесь в разделе «Создание пользователей», поскольку
01:02:40
мы рассмотрим, какой он Тело в посте
01:02:43
имя фамилия и так далее
01:02:45
именно в этом теле. Хорошо, вот
01:02:49
мы получим этот квест HTP Na
01:02:52
наш класс
01:02:57
и вот мы получим наше боди
01:03:00
ХТ Квест
01:03:02
и мы пройдем
01:03:04
к нам с этого момента
01:03:08
Пользователь Creative.create, давайте передадим
01:03:10
наше Тело, которое будет именно иметь
01:03:12
наши параметры и здесь мы можем
01:03:15
также используйте общий вариант, да, давайте сделаем это
01:03:17
здесь, чтобы сделать это красивее
01:03:18
чтобы наш Квест мог получить
01:03:22
жанр здесь называется B, который будет
01:03:25
именно Б по телу, да?
01:03:27
пройду здесь букву "б" и это тело
01:03:30
необязательно, правда, ребята, ведь не все
01:03:31
http-запрос, у него будет тело
01:03:35
например, как мы сделали здесь
01:03:37
для пользователей get у него нет тела
01:03:38
Так что все это необязательно. Хорошо, тогда
01:03:41
Теперь мы поговорим здесь, в
01:03:43
наши Создание пользовательских протоколов наши
01:03:46
доход от пользователя Crate Controller идет
01:03:48
получить тело от Create и пользователя
01:03:52
шоу с мячом ок, тогда сейчас
01:03:57
он допустил здесь ошибку
01:03:59
Это потому, что нам нужно пройти здесь
01:04:02
также ох, тогда htp Quest
01:04:04
создать тебя
01:04:08
вот он этого не отпустит, ребята
01:04:11
потому что у нас уже есть этот рандл
01:04:13
определяя, что этот парень будет
01:04:15
Создатели, поэтому здесь, в методе, который мы
01:04:17
вам также нужно передать создателя
01:04:26
именно он совершает ошибку
01:04:28
потому что это тоже круто
01:04:29
Здесь я впадаю в этот проверочный разговор о том, что
01:04:32
мы сделаем это под контролем, потому что это
01:04:34
Тело не является обязательным, помните, что это
01:04:36
необязательно Но если у нас их нет
01:04:39
Да ладно, здесь, в Рэндоле, мы не можем
01:04:40
выполнить запрос, потому что у нас есть
01:04:42
иметь мальчика Итак, первая проверка
01:04:44
Что мы можем сделать, так это подтвердить кибори
01:04:48
тогда существует здесь, если тело не существует
01:04:54
мы вернемся, помня, что в
01:04:56
контроль, мы возвращаем открытый HD
01:04:59
Итак, мы вернем статус
01:05:00
код 400 или неверный запрос с телом
01:05:04
в
01:05:06
Давайте положим
01:05:10
Хорошо, вот я и возьму это.
01:05:14
от Шрека, чтобы было проще тогда
01:05:16
htp quest.board, если он не существует, то я
01:05:19
Я бросаю эту ошибку сюда, но если она существует,
01:05:22
мы создадим пользователя и остановим
01:05:24
идея здесь, потому что я уже писал это
01:05:26
достаточно умен, чтобы знать, если
01:05:28
давайте пройдем через это, если и как это
01:05:31
проверяю, существует ли этот парень
01:05:33
если мы пройдем его, это означает, что
01:05:35
тело существует, поэтому сейчас, если мы
01:05:37
проведи здесь немного времени, этого тела нет
01:05:39
это тело, конечно, более необязательно
01:05:41
оно существует, потому что мы прошли этот сиф
01:05:43
вот ок, и этот пользователь, если мы передаем
01:05:45
мышь будет пользователем, так что теперь
01:05:48
мы собираемся поставить здесь ноль
01:05:50
show фактически возвращает код состояния
01:05:54
Я верну 201, верно, это код состояния
01:05:57
создано, и я верну пользователю шоу
01:06:00
и вот в CAT я верну статус
01:06:03
код
01:06:06
500 и я надену боди
01:06:10
500 ошибок, ребята, это обычно, когда
01:06:12
что-то здесь происходит, когда кто-то
01:06:14
больше внутренних ошибок происходит потому, что вы думаете
01:06:16
если ошибка произошла в течение
01:06:18
репозиторий — это ошибка, она скорее внутренняя, да?
01:06:21
скорее ошибка сервера, даже тогда
01:06:23
мы вернем эти 500 мне нравится делать
01:06:25
это обычно, когда это большая ошибка
01:06:27
связанный с сервером, хотя его нет
01:06:29
подтверждение факта, да? Например здесь,
01:06:31
На самом деле мы совершаем эту ошибку
01:06:35
проверка, и эта проверка
01:06:37
неверно, да, мы не проверяли это
01:06:39
удалось проверить тело, в данном случае тело
01:06:41
Он устойчив. Да, мы возвращаем один.
01:06:43
статус 400, но если это ошибка, то больше
01:06:46
внутри некоторого внутреннего слоя
01:06:48
Мне нравится возвращать код состояния 500, который
01:06:50
именно внутренний служит
01:06:53
покажи, чтобы мы были готовы
01:06:55
на самом деле вызовите этот элемент управления в нашем
01:06:57
круглый Итак, пойдем сюда, в индекс, пойдем
01:07:00
создайте точечный пост в приложении, и я помещу
01:07:03
бар и пользователи здесь будут такими
01:07:05
также получит стойку и вот
01:07:09
Сначала нам нужно создать репозиторий
01:07:11
право на создание элемента управления, затем монго
01:07:13
Контроллер пользователя Crate, извините
01:07:19
и я забыл назвать его репозиторием
01:07:22
здесь о
01:07:24
Хорошо, я собираюсь изменить ситуацию. Хорошо.
01:07:29
это будет Монго
01:07:31
и у нас также будет монго Create
01:07:35
и пользовательский контроллер, который будет New mongo
01:07:40
Нет, извините, ребята, здесь много кода
01:07:44
Создать пользовательский элемент управления
01:07:47
Хорошо, теперь мы собираемся сохранить выполнение
01:07:51
та же схема, что и раньше, верно, так что сделайте
01:07:52
Разрушение здесь при создании
01:07:56
и здесь у нас будет тело и статус
01:07:59
код ОК, и этот гандбол, который он просит
01:08:02
кое-что для нас, давай пройдемся
01:08:04
вот я и забыл всю прелесть этого дохода, ребята, ок
01:08:07
запрашиваю правильный квест htp, а затем здесь
01:08:10
HD Quest пройдем предмет и тело
01:08:12
будет таким же, как стойка для точек тела, которая
01:08:15
именно то тело, которое мы получаем
01:08:16
здесь, на Алиэкспресс
01:08:19
покажи, и сейчас мы сделаем то же самое
01:08:21
схема затем отвечает
01:08:27
Хорошо, теперь мы готовы
01:08:30
создать пользователя в нашем банке
01:08:31
Но перед этим нам нужно использовать
01:08:34
звонил парень из экспресса
01:08:38
Это превратит нас в
01:08:41
боди, которое мы получаем здесь, на вешалке
01:08:42
для Джейсона нам это не понадобится
01:08:44
сделать Джейсона главным приоритетом
01:08:46
вручную Хорошо, сохраним, посмотрим, получится ли
01:08:48
сервер работает
01:08:50
Хорошо, все работает нормально, класс, а теперь
01:08:53
протестируйте наши запросы, я буду использовать
01:08:56
Почтальон - это так, если у вас нет
01:09:00
Почтальон устанавливается, если вы используете бессонницу
01:09:01
например, вы можете использовать, но я буду использовать
01:09:04
Почтальон здесь, если ты не знаешь Почтальона
01:09:06
это небольшая программа, которую мы можем
01:09:08
затем используйте для проверки htp-запросов
01:09:12
ты можешь скачать его, это очень просто
01:09:14
используйте, я покажу вам сейчас здесь
01:09:16
Можем создать несколько коллекций
01:09:18
здесь, например, я создал
01:09:20
Коллекция здесь называется rest и IPI
01:09:21
ты можешь создать один здесь. О, в этих трех
01:09:23
точек на самом деле здесь нет
01:09:27
и здесь вы нажимаете на новое, а затем
01:09:30
чтобы создать коллекцию, вы заходите в нее
01:09:32
ты придешь сюда в Эдгар Квест, ты будешь
01:09:35
добавь сюда такого парня
01:09:37
поместит URL-адрес, который является именно URL-адресом
01:09:40
заплатите этой планке и пользователям, а затем мы
01:09:42
идти
01:09:44
сделай пост, да?
01:09:47
мы собираемся отправить боди, которое
01:09:48
Только этот парень здесь, да Комфорт
01:09:51
имя означает, что пароль показан, так что поехали
01:09:54
Посмотрим, сработает ли это, я поставлю ему Сэнди.
01:09:55
Он создал Хорошо, круто, посмотрим, получится ли
01:09:59
действительно создан, чтобы проверить, действительно ли это
01:10:01
создано Давайте же жестом Итак, поехали
01:10:03
дайте URL сюда
01:10:04
И посмотрите, какая замечательная вещь у вас есть, ребята.
01:10:07
Мы уже сделали две операции
01:10:09
наша группа, справа, увеличь немного
01:10:11
мы создали и получили
01:10:14
пользователи Итак, давайте подведем итоги
01:10:16
мы сделали это в этом Create, давайте пока
01:10:18
Теперь мы в основном
01:10:20
создал наш контроль
01:10:23
кто получит прощение здесь, я в деле
01:10:26
здесь мы создаем наш элемент управления, который
01:10:28
вы получите квест, который будет иметь
01:10:31
наше Тело, которое представляет собой всего лишь этот парень
01:10:34
вот ок, и мы проходим через это
01:10:37
лицо
01:10:38
здесь о
01:10:40
на стойке
01:10:42
Экспресс-доставка под нашим контролем здесь, на
01:10:46
Мы проверим, существует ли тело
01:10:48
так, например, если край не существует
01:10:50
Я собираюсь удалить это Тело здесь, я собираюсь дать ему
01:10:53
Сенге Он создал, потому что я думаю, что он
01:10:55
отправил это как пустые качели вот оно
01:10:57
ребята, но мы собираемся улучшить это
01:10:59
проверка, но, например, если я поставлю
01:11:01
имя и отправляет сообщение, потому что он отправляет его
01:11:03
Я считаю, что они должны были быть пустыми.
01:11:06
Но, наконец, мы собираемся улучшить это
01:11:08
обновление, мы будем следить здесь, если бар
01:11:10
не существует, мы выдадим здесь ошибку
01:11:13
для пользователя, но если он существует,
01:11:15
мы создаем пользователя и создаем
01:11:17
пользователь, мы передаем нам тело
01:11:18
позвоните нашему дилеру, который именно
01:11:20
этот парень, который введет эти данные
01:11:22
внутри нашего монго получим это
01:11:24
учитывая, что он был введен вашим идентификатором и будет
01:11:26
верните это сюда людям, которые
01:11:28
именно то, что только что произошло здесь
01:11:30
ох красота
01:11:32
Хорошо, а пока давайте сделаем
01:11:36
далее мы улучшим эти проверки
01:11:37
здесь мы идем первыми
01:11:41
проверьте, все ли поля
01:11:44
обязательно были завершены Тогда
01:11:46
пойдем
01:11:48
проверьте Обязательные поля Почему
01:11:50
подумайте, что если вы находитесь на веб-сайте, вы создаете
01:11:53
учетная запись имеет определенные поля, которые
01:11:55
обязательно. Если вы не отправите эти
01:11:57
API полей не может создать вашего пользователя
01:11:59
Итак, давайте проведем эту проверку здесь
01:12:01
Как я собираюсь сделать это очень просто
01:12:03
Давай, давайте сначала создадим один
01:12:07
список названных полей записи, которые будут иметь
01:12:09
все обязательные поля и что
01:12:11
мы укажем имя или фамилию
01:12:13
имя
01:12:14
электронная почта и пароль
01:12:18
ХОРОШО
01:12:20
и здесь мы сделаем следующее
01:12:22
Я собираюсь сделать здесь фарофу, так что это const
01:12:26
предложенные поляПоля Полей, т.е.
01:12:30
для каждого поля полей, которые
01:12:32
обязательно я сделаю следующее
01:12:34
Я проверю, есть ли http Quest
01:12:41
тело стежка
01:12:44
Поля
01:12:49
если не отправили
01:12:53
одно из этих Полей, вот наше Тело, я буду
01:12:56
отправьте сюда ошибку и она выдаст
01:12:59
здесь ошибка, потому что нам нужно пройти
01:13:00
это поле SQ создания пользователя
01:13:05
и здесь объекты
01:13:10
вот этот красавец, так что я пройду
01:13:14
этот вопросительный знак, потому что почему
01:13:16
это Тело может, поэтому мы пройдем это
01:13:19
вопросительный знак, как его зовут
01:13:21
Нуньес Коррэ хочет этого, если я не ошибаюсь.
01:13:23
не знаю сценарий, который в основном говорит
01:13:25
следующий парень, если этот парень — находка
01:13:27
здесь ты не ошибешься, потому что если
01:13:30
мы пытаемся получить доступ к объекту, который
01:13:31
underfinner по умолчанию у нас будет
01:13:34
ошибка, но если этот парень пойдет и будет драться
01:13:37
мы не ошибемся здесь и
01:13:39
следовательно, мы собираемся войти
01:13:41
внутри этого, если здесь, ок, тогда, если это
01:13:44
здесь выполняется означает, что некоторые
01:13:47
обязательных полей не было
01:13:49
предоставлено нам через нашу
01:13:51
Тело, так что сюда мы вернемся
01:13:53
Только этот парень
01:13:56
Я удалю этого парня, круто
01:13:58
Итак, здесь мы можем отправить, как
01:14:01
сообщение об ошибке
01:14:02
Поля
01:14:04
Регистратор полей
01:14:07
ХОРОШО
01:14:08
и здесь мы можем разместить
01:14:11
восклицание ок, потому что если вы пройдете этот IFF
01:14:13
означает, что все поля
01:14:16
обязательно были завершены Тогда
01:14:17
это Тело действительно существует и сейчас
01:14:20
давай вернемся сюда, в пост, чтобы я сделал
01:14:22
то же самое, я собираюсь удалить все здесь
01:14:24
отправьте пустой объект, и он должен дать
01:14:28
для нас ошибка, посмотрим, так что зажгите
01:14:29
требуется канал для schname, если я его отправлю
01:14:33
только имя даст фамилию
01:14:35
это отступление наверное красота и так
01:14:39
пока мы не предоставим все
01:14:41
Хорошо, мы уже проверяем
01:14:44
обязательные поля, теперь давайте проверим
01:14:46
также электронная почта, посмотрим, будет ли электронная почта
01:14:48
действителен Итак, давайте установим
01:14:51
парню, который сделает это, я дам один
01:14:52
Control C здесь, чтобы остановить сервер, я это сделаю
01:14:55
дать край линии
01:14:57
что Библиотека, имеющая ровно один
01:15:00
вызывается метод и как бы проверяет
01:15:02
Электронная почта ОК, я начну снова
01:15:06
Итак, пойдем сюда, и я импортирую
01:15:12
от валидатора
01:15:15
и я думаю, нам нужно установить
01:15:17
валидатор типов да, поэтому я остановлю
01:15:20
сервер снова я дам добавить типы
01:15:27
Хорошо, я начну снова, ок
01:15:30
Теперь давайте сделаем следующее
01:15:33
проверьте, есть ли электронная почта
01:15:36
это действительно
01:15:39
так что здесь я поставлю это с помощью этого средства
01:15:42
зеленый будет долина Датор Пойнт восточная
01:15:45
полтора и вот я передам это, упс
01:15:48
электронное письмо и что я передам HD
01:15:51
quest.org
01:15:54
здесь дам это здесь ок
01:15:57
Итак, если адрес электронной почты недействителен
01:16:02
Мы собираемся совершить ошибку, верно?
01:16:04
return, я дам код состояния 400, который
01:16:08
Плохой запрос по электронной почте
01:16:12
Я сейчас сохраню ОК, если пройду
01:16:15
неверный адрес электронной почты здесь, например, этот
01:16:17
здесь кто действителен, он даст электронное письмо
01:16:20
Зима - прекрасная вещь, но он дал
01:16:22
200 здесь, потому что здесь идут 200
01:16:25
Посмотрим, я думаю что-то здесь
01:16:28
укажите, что я сделал не так
01:16:33
он должен был дать здесь 500, чувак, потому что
01:16:35
что он не позволил мне увидеть, если с нет
01:16:39
он собирается показать мне, и вот он, ребята
01:16:42
здесь не указан код состояния
01:16:43
контроль, потому что статус у него должен прийти
01:16:45
до Здесь или перед отправкой, затем статус
01:16:49
затем я ставлю код состояния 100
01:16:52
Point Body, иначе он отправляет тело, которое он
01:16:55
завершает запрос, прежде чем фактически
01:16:58
установите статус Так будет то же самое
01:17:00
вещь здесь, в нашем теле, затем в нашем
01:17:03
получить музыку тоже, затем статус статуса
01:17:06
код Хорошо, если я здесь не сижу
01:17:09
некоторые поля отсутствуют
01:17:13
он должен дать нам 400 здесь
01:17:16
красота тогда и сейчас
01:17:19
Если я создам пользователя, он создаст ОК
01:17:21
дал 201 шоу с мячом
01:17:23
Итак, мы провели здесь несколько проверок
01:17:26
верно, мы определили, являются ли поля
01:17:28
всех присутствующих мы тоже определили
01:17:31
если адрес электронной почты также был подтвержден, извините, если
01:17:33
адрес электронной почты действителен, давайте удалим это
01:17:35
прокомментируйте здесь, не думаю, что это так
01:17:36
необходимый
01:17:38
Хорошо, а теперь, ребята, давайте оставим комментарий
01:17:42
Это уже работает, помните?
01:17:44
Мы улучшим этот код здесь
01:17:45
Через некоторое время мы сделаем это
01:17:46
здесь несколько отражателей, но давайте продолжим
01:17:48
пока для нашего следующего слоя
01:17:52
право на наш следующий репозиторий и
01:17:54
Контроллер, так что давайте займемся нашим Git
01:17:56
Genuinely Fit Jade создан пользователем.
01:18:01
Проверка контроллера
01:18:04
ХОРОШО
01:18:06
пойдем, тогда пойдем дальше, тогда наш
01:18:08
Creatuser работает, поехали
01:18:10
создадим наш следующий
01:18:12
репозиторий, в котором будут наши обновления
01:18:15
пользовательский элемент управления, который будет хранилищем
01:18:18
тоже круто, так что поехали
01:18:21
Давайте создадим здесь замену под названием
01:18:23
пользователем обновления будет mongo update.ts
01:18:27
Давайте также создадим здесь, в элементах управления,
01:18:30
обновить косую черту пользователя, обновить user.ts и
01:18:35
протокол здесь тоже
01:18:37
и этот протокол у него будет как
01:18:39
Мы уже привыкли к нашему EcoSport
01:18:41
интерфейс я обновляю
01:18:49
метод под названием
01:18:52
который вернет обещание с
01:18:55
пользователь
01:18:56
Я импортирую этого пользователя, нажмите
01:18:58
против точки красотка и этот парень, ребята
01:19:00
Давай, он тоже это получит
01:19:04
параметры здесь
01:19:07
Эти параметры будут полями, которые
01:19:10
мы можем обновить пользователя и
01:19:12
какие поля мы можем там обновить
01:19:14
Выбор за нами, мы можем
01:19:17
пример разрешить только обновление
01:19:19
имя фамилия и пароль плюс и
01:19:21
Не совсем, мы можем выбирать
01:19:24
В этом случае я создам интерфейс здесь
01:19:27
позвонить пользователю обновления Xbox 36
01:19:32
и здесь мы поместим, что это будет только
01:19:35
возможность обновить имя или фамилию
01:19:37
и пароль, который мы не позволим ему обновить
01:19:39
электронная почта
01:19:42
и вот ты думаешь со мной, что все это здесь
01:19:44
необязательное право, потому что, например, если я
01:19:47
хочу обновить только фамилию и уйти
01:19:49
имя как есть, мне просто нужно его передать
01:19:52
только фамилия в моем запросе
01:19:53
Так что я оставлю все как необязательное
01:19:56
Хорошо, и вот это будут Могучие Рейнджеры.
01:19:59
Именно это обновление покажет потом
01:20:02
Здесь мы сделали наши интерфейсы
01:20:05
наш репозиторий теперь мы создадим
01:20:07
факт наш репозиторий Итак, поехали
01:20:09
Xbox
01:20:15
который будет реализовывать наше обновление Uai
01:20:18
Хорошо, теперь давайте реализуем это здесь с помощью
01:20:22
против точки метод, который наш
01:20:24
наши определили, что пользователь обновления и
01:20:27
здесь мы творим чудеса с БД mongo
01:20:30
Так что давай, давай поставим один
01:20:33
сначала пристегните ремень, ведь мы
01:20:34
иди позвони Монго Клинту, так что поехали
01:20:36
поставил Белый монглет И на самом деле
01:20:40
Мы забыли здесь одну мелочь
01:20:42
Я знаю, заметили ли вы, но помимо
01:20:44
параметры здесь, помимо передачи этих
01:20:48
параметры для нашего репозитория
01:20:50
нам нужно передать идентификатор пользователя, который
01:20:52
мы хотим обновить, потому что
01:20:53
Нам нужно как-то узнать, какой
01:20:55
пользователь нашего банка, которого мы хотим
01:20:56
обновление, поэтому здесь мы проведем
01:20:58
намекните, что это будет строка
01:21:00
за пределами этих параметров, то здесь
01:21:03
теперь мы получим идентификатор красоты
01:21:07
и сейчас на Монг Клинк мы позвоним
01:21:08
парень позвонил
01:21:10
адб. Коллекция
01:21:13
обновить один
01:21:15
Хорошо, и этот эпизод он получит
01:21:18
два аргумента, первый будет
01:21:22
который он будет использовать для фильтрации того, какие
01:21:25
пользователь, которого он хочет обновить, на случай, если
01:21:27
мы собираемся использовать идентификатор. Итак, как нам это сделать?
01:21:29
мы сделаем это, мы будем искать
01:21:31
идентификатор с подчеркиванием, потому что помните в монго
01:21:33
пользователь сохраняется с идентификатором в этом формате
01:21:37
и здесь нам нужно преобразовать вот этот
01:21:40
это строка для парня по имени
01:21:41
Объект, который является еще одним конкретным типом
01:21:44
мир, так что давайте импортируем его сюда из
01:21:46
Монго
01:21:48
Итак, я собираюсь предоставить объект импорта
01:21:51
из базы данных Монго
01:21:55
и этот парень будет новой Орбитой
01:21:57
мы дадим нам наше удостоверение личности
01:21:59
нужно сделать это здесь, когда
01:22:00
сравните подчеркивание, которое является идентификатором, который
01:22:03
Есть именно такой специфический тип
01:22:05
Монго с общим идентификатором, скажем так
01:22:09
верно, у него строковый тип Beauty, поэтому
01:22:12
мы передали первый параметр сейчас
01:22:13
как, по нашему мнению, мы собираемся пройти
01:22:15
свойства, которые мы хотим обновить
01:22:17
на случай, если нам сначала понадобится
01:22:20
сеттер здесь, в монго, назвал 7 из этого
01:22:22
форму и здесь внутри мы проводим
01:22:24
Силы или что бы мы ни получили
01:22:27
здесь в параметрах, которые мы передаем сюда
01:22:29
чтобы он мог обновить его в нашем банке
01:22:32
ОК, теперь мы сделаем то же самое
01:22:35
схема, которую мы там сделали
01:22:38
Создадим будем искать пользователя
01:22:40
с его удостоверением личности, чтобы узнать, действительно ли он
01:22:43
обновилось, так что давай, поехали
01:22:45
найдите пользователя здесь, тогда пользователь будет
01:22:48
принадлежать
01:22:51
БД dot Collection.users One и здесь
01:22:56
пойдем
01:22:57
предоставление удостоверения личности будет новой целью
01:23:01
Хорошо, вспомним, что нам нужно
01:23:04
сделайте это преобразование здесь и здесь в
01:23:07
Коллекция, давайте пропустим это
01:23:09
еще раз для нас, чтобы иметь
01:23:11
необходимо вводить текст, поэтому пользователь будет
01:23:14
выходец из Монго имеет все свойства
01:23:16
имя пользователя минус идентификатор
01:23:18
с подчеркиванием тогда
01:23:21
если мы не найдем пользователя
01:23:26
мы собираемся троллить Новая ошибка
01:23:28
пользователь не обновляется. Теперь, если мы найдем
01:23:33
мы делаем то же самое, что и делали
01:23:34
там в «Создать пользователя» возьмите его идентификатор с помощью
01:23:36
подчеркивание преобразовать в идентификатор
01:23:38
уважение к нашему пользовательскому режиму
01:23:40
так что давайте сделаем забастовку, у нее будет идентификатор
01:23:44
и будет остальное
01:23:47
круто, а теперь мы собираемся получить удостоверение личности
01:23:49
что будет то же самое
01:23:53
упс, здесь он ошибается
01:23:59
Ах, потому что здесь нам нужно дать
01:24:01
Хорошо, это будет строка idrex E.
01:24:05
Затем мы проведем остаток шоу
01:24:08
ок, мы внедрили наше обновление здесь
01:24:10
позиция пользователя, то мы делаем
01:24:13
обновление пользователя, затем получите это
01:24:15
пользователь в банке, а затем возвращает это
01:24:17
пользователь здесь, который будет использоваться
01:24:19
контроль позже Итак, поехали
01:24:21
Тогда давай пригласим этого парня
01:24:24
Git переваривает комментарий, а затем понимает, что
01:24:26
люди во время проекта всегда
01:24:27
приготовление еды и очень наглядно это
01:24:30
Это именно то, что мы должны сделать
01:24:33
поэтому Эд Монго обновил пользовательский репозиторий
01:24:37
Хорошо, теперь давайте перейдем сюда под нашим контролем и
01:24:42
давайте на самом деле создадим его здесь, в
01:24:45
prodocols Давайте создадим еще один интерфейс
01:24:46
позвони туда, обнови
01:24:53
у этого парня будет такой же рэндл, как и у нас
01:24:56
уже привыкли возвращаться в
01:24:58
Обещание с
01:24:59
ответ, и этот HD вернет
01:25:03
пользователь тоже прав, потому что мы будем
01:25:05
вернуть пользователя, который был обновлен ОК
01:25:08
и это HD
01:25:10
получит HD-квест, в котором будет
01:25:15
свойства, которые мы уже определили
01:25:16
в этом интерфейсе прямо здесь
01:25:20
а это из Наруто, ребята
01:25:22
осознать, что он допустил здесь ошибку, потому что
01:25:24
наконец он просит общую четверку, хотя
01:25:28
нам не нужно боди
01:25:30
давайте проведем рефакторинг позже, а пока я
01:25:32
Я собираюсь поместить его сюда, чтобы он остановился
01:25:33
жаловаться ок
01:25:35
но в этом запросе будут усилители мощности
01:25:39
запомните эти усилители мощности и мы
01:25:42
получить желаемый идентификатор пользователя
01:25:44
тогда обновите именно с помощью powerbs
01:25:46
например, мы назовем это так
01:25:48
такие люди, как мы здесь, на диаграмме
01:25:51
Пользователи домашних животных
01:25:54
Итак, мы воспользуемся этой проблемой
01:25:56
здесь, под нашим контролем, так что поехали
01:25:58
здесь, на aplizer.ts, мы создадим
01:26:01
класс, называемый обновлением пользовательского контроллера
01:26:05
который будет реализовывать, я обновляю пользователя
01:26:07
Контролёр, я тут приведу контрапункт
01:26:09
чтобы он сотворил магию ковров для
01:26:11
Я собираюсь разместить здесь один для Синтии, хорошо, я сделаю это.
01:26:15
сделай это, попробуй шаблон «Кошка»
01:26:18
бьюти-ошибка и здесь
01:26:22
если мы попадем в Cat, мы вернем
01:26:24
код статуса 500
01:26:26
с боди Winds
01:26:35
давай на самом деле начнем думать о
01:26:39
проверки, которые нам нужно сделать
01:26:40
здесь нужна первая проверка
01:26:44
Вы должны предоставить идентификатор здесь
01:26:46
правильно. Итак, если мы не пройдем
01:26:48
с параметром мы должны дать
01:26:50
ошибка, так что давай сделаем это, поэтому я сделаю
01:26:53
сделай следующее, я сделаю лучше, чем
01:26:54
что мы сделали там, в разделе «Создать пользователя»
01:26:55
Контроллер. Давайте займемся отслеживанием здесь.
01:26:58
уже
01:26:59
Так что я возьму это здесь
01:27:03
Выложу сюда на ID Белеза так
01:27:08
о чем мы здесь говорим, что мы
01:27:09
примет параметр с именем ID, который
01:27:12
будет именно параметр
01:27:13
пример косой черты и user/123 это один два
01:27:15
три будут идентификатором и мы поговорим
01:27:18
что этот один два три позвонят туда
01:27:20
оттуда в экспрессе там в указателе отсюда
01:27:22
немного
01:27:24
и мы проверим, соответствует ли этот Акт
01:27:27
не существует, если мы не существуем
01:27:28
дает статический возврат 400
01:27:33
Тайна тела
01:27:36
Хорошо, теперь, если он пойдет отсюда
01:27:39
правда, это должно быть в пределах ок
01:27:42
Если он уйдет отсюда, мы сможем сейчас
01:27:46
отправить на обновление вообще давайте
01:27:51
сделать еще один запрос, еще одну проверку
01:27:53
подумайте вместе со мной, если пользователь что-то передает
01:27:57
любая область в инквизиции, которая не
01:28:01
разрешенное обновление, например
01:28:02
давайте предположим, что он пройдет
01:28:04
электронное письмо, которое мы не оставляем
01:28:07
обновить, мы просто позволим ему обновиться
01:28:08
эти ребята, если мы отправим электронное письмо
01:28:10
мы должны дать ему ошибку
01:28:12
тоже, да, так что давай сделаем это
01:28:14
здесь тоже проверка, так что поехали
01:28:17
Давайте поместим тело сюда
01:28:20
во время perquest.org
01:28:23
и давайте сделаем следующее
01:28:26
считать
01:28:28
полевой звук нет
01:28:31
то есть какое-то поле не разрешено
01:28:35
обновление и как мы это делаем
01:28:36
мы собираемся провести викторину по точкам на предметах
01:28:39
в Теле это
01:28:42
это то
01:28:44
Эти Викторины будут именно полями
01:28:47
затем сначала имя и так далее, потом
01:28:49
Что мы можем здесь сделать?
01:28:51
Вы можете поговорить здесь, если какое-либо поле отсутствует
01:28:55
разрешено и как мы будем отображать
01:28:57
с этим полем обещано, что мы будем
01:28:58
создайте список здесь и затем там
01:29:00
Edfields для обновления будет именем
01:29:11
пароль, а точнее здесь
01:29:13
мы можем даже сосать это здесь o Это
01:29:15
здесь это будет типа «Создать пользователей в
01:29:17
правда, ты не сможешь этого сделать, ты не сделаешь
01:29:19
Я действительно могу это сделать
01:29:21
сделай это как выкл. Создать пользователя
01:29:24
я думаю, это мог бы быть список
01:29:27
Вот как это произойдет. Хорошо, тогда мы
01:29:30
Вы здесь об этих парнях говорите?
01:29:33
эти 15 здесь и на самом деле обновляются
01:29:38
Итак, мы говорим, что этот парень
01:29:40
это будет список этих викторин. Итак, если
01:29:43
мы пытаемся поставить еще один
01:29:45
значение здесь, это выдаст ошибку Хорошо, тогда
01:29:48
тогда давайте проследим, есть ли какое-либо поле, которое
01:29:51
Мы получаем это в Боди, не так ли?
01:29:53
внутри этого парня мы собираемся дать
01:29:55
правильная ошибка, так что давайте поместим
01:29:58
вот и давай поставим здесь отрицание
01:30:02
Лаунчер точек в комплекте
01:30:05
это означает, что здесь выдаст ошибку, потому что
01:30:09
этот должен быть
01:30:15
на самом деле здесь это может быть что угодно
01:30:16
вещь, не так ли?
01:30:19
некоторые из них здесь, но в любом случае
01:30:23
Давай оставим так, без проблем
01:30:25
так что если это грузовик, это значит
01:30:28
что какое-то Поле, которое мы получили в
01:30:30
Тела здесь нет или оно есть?
01:30:33
Поле, которое мы получили, не может быть
01:30:35
обновлено Итак, если это грузовик
01:30:39
мы совершим ошибку
01:30:41
с 400
01:30:45
и мы поставим
01:30:50
Сын получил Поле не в порядке, если что
01:30:55
Вот это работает, тогда да, вызываем
01:30:58
репозиторий Хорошо, если
01:31:02
это нормально, мы позвоним
01:31:04
замена
01:31:10
и здесь мы его еще не ввели
01:31:13
Строитель, да? В итоге я забыл, так что?
01:31:15
давайте добавим это сюда, в конструктор
01:31:18
контроля Давайте поставим приват
01:31:23
обновить пользователя
01:31:26
это будет обновление
01:31:30
и здесь мы этого не сделали, так что это будет оно
01:31:33
парень здесь, извини, так это будет этот парень
01:31:35
один, я сейчас импортирую его сюда, красота, да
01:31:40
здесь мы можем
01:31:44
звонить пользователям будет затруднительно
01:31:46
с этого момента обновление
01:31:48
пользователя, и здесь мы передадим идентификатор, который
01:31:51
именно в этом запросе и есть это
01:31:54
Сейчас день, так что давайте передадим удостоверение личности
01:31:55
и усилители мощности будут именно Body
01:31:58
так что давайте сейчас же шоу тела, ребята
01:32:01
давайте передадим сюда код статуса возврата
01:32:05
200 Тело Давайте теперь добавим пользователю ОК.
01:32:08
Давайте проверим, работает ли оно?
01:32:11
Сделайте следующее, я удалю свой
01:32:12
монго
01:32:14
просто чтобы навести здесь порядок, если ты им пользуешься
01:32:17
атла, ты можешь
01:32:19
исследуйте здесь Ваше монго здесь
01:32:21
Коллекции браузера
01:32:23
тогда ты, наконец, сможешь получить
01:32:25
коллекции здесь вы можете удалить их
01:32:27
Наконец-то ты можешь делать все, что хочешь
01:32:29
Я использую его локально, я подключусь
01:32:31
здесь быстро в мире DB делает покупки тогда
01:32:33
пароль root
01:32:39
Почему же тогда это не удалось, красавица?
01:32:43
Я собираюсь удалить это
01:32:47
Хорошо, давайте создадим пользователя, тогда я сделаю
01:32:50
создай пользователя здесь я отправлю ок
01:32:53
Он создал это для меня, теперь я возьму это.
01:32:54
это я обновлю этого пользователя
01:32:56
тогда создайте запрос здесь
01:32:59
с типом Домашнее животное
01:33:02
И мы на самом деле не сделали раунд
01:33:04
Пока нет, так что давайте сделаем обход здесь
01:33:05
в индексе только тогда мы сможем протестировать
01:33:07
запрос, который нам действительно нужно создать
01:33:09
раунд для этого определения для этого
01:33:11
запрос, поэтому здесь я поставлю
01:33:13
app.pet и чем он отличается от одного
01:33:15
домашнее животное для пути, которое мы также можем использовать
01:33:17
горшок вот ребята Но любой
01:33:19
разница в том, какой пут мы используем, когда
01:33:21
Мы хотим полностью заменить One
01:33:23
сущность в банке, когда мы хотим
01:33:25
буквально удалить существующий и создать
01:33:28
новый, как будто мы просто обновляем
01:33:30
частично пользователь, да? Мы можем поставить?
01:33:32
пример обновить только фамилию
01:33:34
мы будем использовать его домашнее животное, потому что
01:33:36
Нам предстоит сказать, что именно
01:33:39
мы сделаем обновление частичная, а не полная замена
01:33:42
Итак, мы собираемся использовать домашнее животное, вот и я.
01:33:44
поставьте косую черту и пользователей и поехали
01:33:46
поставь косую черту, двоеточие, что это такое
01:33:49
именно имя параметра, который
01:33:51
мы получим его в нашем объекте
01:33:52
усилители мощности, которые здесь будут использоваться
01:33:55
наш обновленный пользовательский контроллер
01:33:58
Хорошо, это важно здесь.
01:34:00
ID Давайте поставим А5
01:34:04
Затем мы создадим здесь наше обновление.
01:34:08
Репозиторий пользователей на самом деле монго
01:34:12
обновить пользователя
01:34:20
[Музыка]
01:34:35
покажи а теперь сделаем ту же схему
01:34:38
отсюда, то это будет восьмое обновление
01:34:43
пользователь
01:34:45
и здесь мы пройдем
01:34:48
две вещи, да, мы собираемся передать боди
01:34:52
это будет багажник Ponto Body и мы
01:34:55
усилители мощности пройдут, и это будет
01:34:57
стойки, которые будут иметь именно этот идентификатор и
01:35:00
Здесь мы получим тело и статус
01:35:03
код
01:35:04
И тогда мы дадим вам статус-ответ
01:35:07
статусная точка
01:35:09
code.sende Тело и здесь я удалю это
01:35:11
Я возвращаюсь сверху, что тебе это не нужно, ок
01:35:14
мы сохраним это сейчас здесь, в нашем Почтальоне
01:35:17
Давайте дадим питомца, проходящего мимо пользователя, который
01:35:21
мы создали Итак, у меня есть гастуры
01:35:23
вот я получил свой идентификатор пользователя, я дам его
01:35:26
обновление здесь, и я изменю адрес электронной почты
01:35:28
от него к этому, уродливому у Рочи
01:35:30
а сейчас felipe@hot, посмотрим, пойдет ли
01:35:32
изменить, я отправил Сэнди
01:35:35
Семь, потому что мы только что прошли
01:35:39
Такое ощущение, что ты не можешь его обновить
01:35:42
Я удалю этого парня, окей, поехали
01:35:44
Давайте обновим пароль, чтобы я знал
01:35:46
вот три четыре пять окей, давай попробуем
01:35:49
Сэнди Окей, обновления Смотри, как круто
01:35:50
обновленный пароль Если я поменяю его еще раз
01:35:52
на один два три
01:35:54
он обновил шоу с мячом «Если я попробую»
01:35:56
обновите электронную почту, как я только что сделал
01:35:58
сделай на раз два три например он
01:36:00
ребята, я не позволю показать мяч, и если
01:36:04
Я пытаюсь передать здесь поле, которое не
01:36:05
Существует также тип теста, равный раз два
01:36:07
три и удали письмо отсюда, он тоже
01:36:10
Не позволю
01:36:14
поэтому мы сделали здесь нашего пользователя обновлений
01:36:18
Контроллер, так что давайте сделаем коммит
01:36:19
мы почти закончили, наше пи
01:36:21
затем кормить пользователей обновлений Edge
01:36:30
покажи, так что теперь нам просто нужен наш последний
01:36:33
контроль, это наша D Elite, верно?
01:36:36
мы собираемся создать столько репозитория и для
01:36:38
удалить пользователя как элемент управления
01:36:40
Итак, поехали, давайте создадим здесь свой
01:36:42
Репозиторий элитных пользователей/
01:36:46
л
01:36:51
Красота И вот мы собираемся создать свою собственную
01:36:55
наш элемент управления затем делит user/dl 0,10
01:36:58
а также наши протоколы
01:37:02
здесь мы создадим интерфейс
01:37:05
позвоните туда вкусной заменой, которая будет
01:37:09
есть метод под названием Elite user и
01:37:12
вот мы и получим удостоверение, да?
01:37:14
идентификатор пользователя, который нам нужен
01:37:15
удали и мы вернем один
01:37:17
Обещание удаленному пользователю. Ок.
01:37:20
так что давайте импортируем сюда, ок
01:37:23
Теперь давайте перейдем сюда, в наш репозиторий
01:37:26
факт то Xport Class Mongo Elite
01:37:29
пользователь
01:37:30
репозиторий, который будет реализовывать нашу
01:37:32
о, делите
01:37:35
здесь они будут давить на точку
01:37:37
косметические средства мы поставим
01:37:40
синхронный
01:37:42
Хорошо, теперь давайте воспользуемся нашим монгольским клинтом.
01:37:45
еще раз, но сначала, ребята
01:37:47
сначала нужно сообщить пользователю, что
01:37:49
мы удалим его, потому что метод
01:37:52
Способность Mongo удалить непользователя
01:37:54
возвращает пользователя, который был удален. Затем
01:37:56
перед фактическим удалением пользователя. Давайте
01:37:58
найдите его, чтобы сохранить и
01:38:00
чтобы вернуть его позже в
01:38:02
user Итак, давайте поместим сюда
01:38:04
Конфузором станет Белый Монгольский Клинт.
01:38:06
dot DB dot Collection yousers One и
01:38:13
здесь мы поместим идентификатор действия
01:38:14
Это преобразование не будет очевидным Новым
01:38:17
Давайте вести себя так, будто он парень из Mongo DB, поехали.
01:38:19
импортируйте это сюда
01:38:22
импортирует объект
01:38:24
из mondeb Так что это будет моя цель
01:38:29
что мы получили здесь и поехали
01:38:32
сделать эту схему исключения, верно?
01:38:34
опустить ок
01:38:40
и теперь мы идем, мы можем даже
01:38:43
проверьте здесь и Fusion или
01:38:45
Так что, если у вас нет пользователя, мы это сделаем
01:38:49
выдайте ошибку тогда
01:38:57
Хорошо, теперь давайте удалим
01:38:59
пользователь, поэтому для этого мы будем
01:39:01
позвонить парню по имени всегда взял Клинт
01:39:04
dot БД dot Коллекция пользователей dot
01:39:08
Elite One и здесь мы пройдем
01:39:11
похоже на обновление, да?
01:39:13
передать объект здесь, в основном
01:39:16
фильтр, который Монго будет использовать, чтобы найти
01:39:18
пользователь, которого мы хотим удалить, затем
01:39:19
фильтр будет заключаться в том, что идентификатор будет новым
01:39:22
очевидно, еще раз так
01:39:23
преобразование, которое мы уже сделали
01:39:24
его прохождение приведет к удалению пользователя
01:39:27
кому принадлежит этот день здесь
01:39:30
и этот парень вернется к нам
01:39:32
Ребята объект и этот объект будет иметь
01:39:35
свойство под названием delir считает, что
01:39:38
Как следует из названия, это будет подсчет
01:39:40
объекты, которые были удалены, если наши
01:39:43
объект, если наш пользователь не
01:39:45
удалил по какой-то причине этот парень идет
01:39:47
быть нулем, и мы можем выдать ошибку
01:39:48
здесь для пользователя Итак, если доставка
01:39:51
имеет значение
01:39:52
не существует, верно, потому что это даст ноль
01:39:54
фейк здесь, поэтому он упадет сюда
01:39:56
Так что оставайся внутри, мы пойдем
01:39:58
выдать ошибку под названием user Not Thelit
01:40:02
Итак, давайте воспользуемся тем, что он не был удален
01:40:04
по какой-то причине, если он придет
01:40:06
мы в основном собираемся делать то, что мы
01:40:08
Ранее мы удалили идентификатор из
01:40:10
пользователь
01:40:12
и вернём сюда, что ID равен ID
01:40:15
строка с точками и вернуть остаток сюда
01:40:18
прохладный
01:40:21
мы создали здесь нашего вкладчика и будем
01:40:22
сделай нашу комету, а потом gichead
01:40:32
покажи сейчас, давай создадим свой
01:40:35
тогда контролируй здесь, в своем пользователе, поехали
01:40:38
создайте здесь еще одного профессионала под названием
01:40:47
у него будет метод под названием Random, который
01:40:50
получит квест
01:40:55
который вернет обещание с
01:40:59
ответьте, что вы будете пользователем. Хорошо.
01:41:03
Запись здесь не будет Тела, поэтому я
01:41:05
Я оставлю это здесь, ОК, теперь поехали
01:41:09
на самом деле создадим наш контроль тогда
01:41:11
Xbox
01:41:17
который будет реализовывать наш idlser
01:41:20
контроль
01:41:26
Я положил воздух сюда
01:41:29
[Музыка]
01:41:31
тогда я хотел такое же имя
01:41:33
Пользовательский контроллер Aidelite
01:41:37
давайте импортируем сюда, покажем, давайте нажмем
01:41:40
здесь против сути, ок, теперь поехали
01:41:44
сделай узор там, да, потом попробуй здесь
01:41:47
CAT напоминает нам, что мы выставим новый счет
01:41:48
Здесь много всего, ребята, возьмите много
01:41:50
повторение кода, давайте посмотрим
01:41:52
вечный код статуса здесь, на клиенте, верно?
01:41:55
КОТ тело будет просто фанатом
01:41:59
ХОРОШО
01:42:01
что он допускает здесь ошибку, потому что у него есть
01:42:04
быть доказательством
01:42:05
Хорошо, вот и нам нужно это сделать
01:42:08
некоторые проверки, верно?
01:42:10
Сначала нам нужно проверить, есть ли
01:42:13
Ади То же самое было получено тогда
01:42:15
мы сделали это там в обновлении, так что здесь
01:42:18
мы сохраним удостоверение личности, это будет
01:42:20
quest.ms всегда использует эту точку
01:42:23
вопрос здесь, потому что эти значения
01:42:24
они могут
01:42:26
если у нас не будет больше, чем у нас будет
01:42:28
вернуть код состояния 400 тела
01:42:34
[Музыка]
01:42:37
и мы также внедрим сюда замену
01:42:40
внутри здесь, так что давайте поместим приваты
01:42:47
который станет заменой элитного пользователя
01:42:54
Теперь, если все пойдет хорошо, мы
01:42:57
получить пользователя, который будет результатом
01:43:00
удалите хранилище пользователей и баллы Elite
01:43:02
давай передадим идентификатор и вернемся сюда
01:43:05
код состояния 200, тело будет
01:43:10
шоу с мячом, вот оно и готово, наше
01:43:11
контроль, давайте сейчас перейдем к индексу и
01:43:13
позвони ему вообще-то здесь, на нашем маршруте
01:43:15
Так что я собираюсь скопировать этого парня, чтобы остаться
01:43:17
я поставлю приложение быстрее
01:43:19
Элита и пользователи
01:43:27
нажмите кнопку управления, чтобы выбрать
01:43:29
также близко к Элите, вот и я
01:43:32
импортируйте этого парня против точки красоты
01:43:33
и здесь то же самое, затем обновите пользователя
01:43:36
Я собираюсь изменить следующие три здесь, о Фой.
01:43:39
нажав кнопку D, чтобы выбрать их
01:43:40
я бы назвал его элитным
01:43:44
на самом деле это обновление здесь
01:43:48
ох, деликатес
01:43:53
Репозиторий элиты здесь с крошечным
01:43:56
красота
01:44:02
Это не имеет значения. Этот элемент управления здесь, ок, тогда
01:44:06
Давай, нам не нужно проходить, потому что
01:44:08
да, нашей Элите не просто нужны
01:44:11
Действительно Могучие Рейнджеры, и теперь поехали.
01:44:13
посмотрим, сможем ли мы удалить наш
01:44:15
пользователь, поэтому, если я дам здесь менеджеров
01:44:18
У меня здесь есть Фелипе, я собираюсь забрать его?
01:44:21
Его светодиод Я собираюсь прийти сюда, у пользователя delite Я собираюсь
01:44:24
поместите сюда 8000 бар и пользователей
01:44:29
и посмотри, как круто он это удалил, если я
01:44:32
попробуй удалить еще раз, выдаст
01:44:33
неправильно, потому что этого пользователя не существует, верно?
01:44:35
так что если я подарю котенка, то придет один
01:44:38
пустой список Итак, ребята, наш Круз
01:44:40
Это работает, чувак, это так красиво
01:44:42
Теперь давайте пригласим это сюда
01:44:45
поэтому я собираюсь подарить комплект Edge gitcomith Edge
01:44:57
поэтому мы добавили элемент управления и
01:45:00
твой маршрут
01:45:01
Итак, ребята, наш квид готов.
01:45:04
здесь, но есть некоторые рефакторинги, которые я
01:45:06
Я хочу сделать это с тобой, ладно, поехали
01:45:08
во-первых, здесь много повторяющегося кода
01:45:11
в основном в интерфейсах
01:45:13
управление понимает, что все интерфейсы
01:45:15
управление такое же
01:45:17
посмотрите, они очень похожи
01:45:22
ох, ты видишь, ох
01:45:23
Квест возвращает ответ тогда
01:45:27
природа очень похожа, так что же
01:45:29
мы можем сделать, мы можем создать
01:45:30
просто интерфейс здесь, в протоколах
01:45:34
контроля, называемого контролем
01:45:37
и этот интерфейс будет иметь метод
01:45:40
Рандо, я перенесу управление сюда, ладно?
01:45:42
будет метод и этот доход будет
01:45:45
получить квест
01:45:47
здесь, который всегда будет возвращать htp:
01:45:56
она получает
01:45:58
немного денег, да, и ребята, я сделаю это
01:46:01
Дальше я возьму
01:46:03
Этот генерал - это то, что я хочу оставить
01:46:05
чувак, нам полезно вот так сосать тело
01:46:12
Хорошо, я рассмотрю запрос здесь и выполню
01:46:15
В следующий раз она будет очень крутой
01:46:16
здесь я пройду мимо парня по имени
01:46:20
вот оно И тут в ответ парень
01:46:22
называют карликом еще и потому, что мы только
01:46:25
ты действительно будешь знать, что происходит
01:46:27
парень и этот парень, когда мы на самом деле
01:46:29
создать контроль, не так ли?
01:46:34
Хорошо поставить этого гнома, потому что мы
01:46:35
Скажи мне, что это написано, чувак, я не знаю что.
01:46:38
парень, который воплотит меня в жизнь, он это сделает
01:46:40
Итак, теперь определим, как мы
01:46:42
поменяй это здесь, где он тебя использует
01:46:45
вместо реализации широкого элемента управления
01:46:47
он использует ваш контроль, мы реализуем
01:46:49
ох, контроль имеет значение
01:46:52
ХОРОШО
01:46:53
красота, ничего не изменилось, но теперь вот
01:46:56
можем ли мы удалить этого парня
01:46:59
и Агата здесь будет пользователем, см.
01:47:02
который мы теперь определяем в другом методе
01:47:04
единственное, что ты мог бы сделать, это передать
01:47:07
дженерики здесь, затем, например, передайте
01:47:10
передачи t и B здесь t будет
01:47:15
здесь, и Б был бы здесь. Но что такое
01:47:18
проблема с этим
01:47:19
Проблема в том, что у нас будет
01:47:21
здесь тоже расстояние, парень вместо
01:47:24
расстояние только здесь, оно у нас есть здесь
01:47:26
расстояние например n здесь и там o
01:47:29
Создание экземпляра музыки здесь снова введите нет
01:47:33
Мне это очень нравится, поэтому я удалю это
01:47:35
Я собираюсь нажать Ctrl и оставить все как есть
01:47:37
это действительно здорово, вот так у меня
01:47:39
видение Хорошо, мы удалили один
01:47:43
интерфейс, который нам здесь не нужен
01:47:44
давай удалим и это сейчас
01:47:47
здесь, в разделе «Создать пользователя»
01:47:49
давай удалим и этого парня
01:47:54
удали здесь красотку и вот оно пошло
01:47:58
внедрить контроль ИИ
01:48:01
показывать
01:48:02
Здесь уже активировано, также ответьте
01:48:06
красота
01:48:07
привлечь пользователей, мы также реализуем
01:48:10
Вау, контроль здесь и сейчас
01:48:12
удали этого парня
01:48:14
покажи, я собираюсь удалить этого парня здесь
01:48:19
красота
01:48:22
и обновляйте пользователей тоже, так что там
01:48:25
контролировать здесь
01:48:26
я удалю это здесь
01:48:29
давайте посмотрим здесь
01:48:31
Я не использую этот порт
01:48:35
ок, удали и здесь
01:48:39
красота
01:48:45
ОК. И вот этот результат из обновления, которое мы
01:48:49
можешь ли ты передать обновление пользователя мужчинам
01:48:50
здесь, да?
01:48:56
и это Тело здесь может быть
01:49:00
так красиво
01:49:02
Потому что на самом деле тело здесь наше
01:49:04
обновить пользователя будет
01:49:08
что он здесь дает
01:49:10
Потому что это может быть определяющим фактором, верно?
01:49:13
поэтому мы можем добавить еще один
01:49:15
проверка здесь
01:49:19
вокруг так нравится
01:49:22
IFF Body мы даем возврат
01:49:24
код состояния 400 Корпус но фильтры есть
01:49:31
он останавливает свою идею здесь, что у него есть?
01:49:33
уверен, что тело действительно существует
01:49:34
получили Красоту, поэтому мы сделали
01:49:37
эффектри здесь первый эффектри
01:49:39
мы изменили много файлов, но давайте посмотрим
01:49:41
gtkomite отражатель Ed общий контроль
01:49:47
интерфейс, поэтому мы добавили
01:49:49
интерфейс управления AI, общий для
01:49:51
все контролирует красоту, другое
01:49:53
ребиллинг, который я хочу сделать здесь хорошо
01:49:55
Быстро, следующее — создать функции
01:49:58
помогает, что уже сделаю все это обратно
01:50:02
здесь код состояния и тело для нас
01:50:04
Вы видите, что мы многое повторили
01:50:06
Иногда вот это вечная статика
01:50:10
Давайте создадим функции, которые уже абстрактны
01:50:13
эта логика для нас, так что поехали
01:50:15
здесь, в элементах управления. Давайте создадим новый
01:50:18
файл с именем helpers
01:50:22
и здесь мы создадим функцию под названием
01:50:25
Плохо, что эта функция в основном вернет
01:50:32
код состояния 400, и она получит
01:50:35
сообщение, которое мы хотим отправить в этом
01:50:37
случай неправильного запроса. Поэтому я поставлю
01:50:39
Мессенджер вот я надену такое же боди
01:50:42
в Мессенджер
01:50:43
круто, давай сделаем то же самое для
01:50:46
Запросы
01:50:47
ок, это 200, вот это
01:50:51
в основном мы вернем
01:50:53
статус 200 и тело мы получим
01:50:56
здесь тоже
01:50:57
я надену боди
01:50:59
Здесь ничего не может быть, поехали
01:51:01
Итак, пойдем, наденем боди.
01:51:05
красота и то же самое для созданного
01:51:09
затем созданный
01:51:11
но статус будет 21
01:51:14
Теперь посмотрите, как круто закрывать файлы
01:51:16
Здесь много чего открыто
01:51:19
Создайте пользователя, например, мы можем
01:51:22
воспользуйся этим квестом, пока мы
01:51:24
возвращает 400, посмотрим, тогда я пойду
01:51:26
сделайте следующее
01:51:27
электронная почта МКФ
01:51:28
Я дам возврат
01:51:31
и здесь мне просто нужно перейти сейчас к
01:51:35
электронное письмо Посмотри, как круто
01:51:39
и теперь я дам
01:51:42
Я удалю это здесь, я даже думаю
01:51:44
что делает ошибку, потому что здесь мы
01:51:46
вам нужно вернуть ответ htp
01:51:51
и он спрашивает здесь тип телосложения
01:51:57
Хорошо, тогда давайте сделаем следующее
01:52:00
что
01:52:03
точка будет строкой
01:52:06
и вот код состояния на самом деле, так что
01:52:09
то, что я здесь делаю, выглядит вот так
01:52:11
точки, если они получают дженерик, который
01:52:12
именно тот тип, который будет телом а
01:52:15
нам нужно пройти здесь, так что здесь
01:52:17
это будет строка, которую я передал здесь, и это
01:52:20
Создателем он будет, нас двое
01:52:23
варианты, ребята, мы можем получить
01:52:25
здесь тоже немного денег, так что
01:52:28
пример здесь и передайте тело как есть
01:52:33
сейчас, но нам придется
01:52:34
пример передачи общего здесь, когда
01:52:37
назовем этого Создателя
01:52:38
пример, который нам придется пройти
01:52:40
он даже пользователь, например, а я нет
01:52:43
Мне это очень нравится, так что поехали
01:52:48
давайте сделаем следующее с Creeds здесь
01:52:52
он вернется
01:52:55
[Музыка]
01:52:57
один Я иду сюда, у гнома нет проблем
01:53:01
Хорошо, ребята, и код статуса здесь будет
01:53:04
201 статус 201 200 здесь в Ок, красота и
01:53:09
здесь я собираюсь сделать то же самое здесь
01:53:11
вершина
01:53:12
Окей, круто, здесь он ошибся, потому что команды
01:53:20
Ребята, здесь была небольшая ошибка, потому что
01:53:23
давайте проведем еще один рефакторинг, поехали
01:53:25
наслаждайся здесь, в этот момент мы уйдем
01:53:27
просто это для того, чтобы у нас было общее количество
01:53:30
контроль возвращения этого Тела вот он
01:53:32
И здесь, в разделе «Создать пользователя»
01:53:35
Давайте изложим это здесь по пунктам, которые он
01:53:37
вернет 11 пользователей или строку, которые
01:53:39
В данном случае это будет ошибкой, не так ли?
01:53:42
Нам придется делать это каждый раз
01:53:43
управление Но пойдем по очереди Итак
01:53:45
вот это мы уже успели сделать
01:53:47
строка здесь, в Bad requestrar one
01:53:50
сообщение ок, мы уже перевыставили счет за эту часть
01:53:52
Теперь вот мы собираемся вернуть Создателя
01:53:55
теперь передаем пользователя, и он будет
01:54:00
здесь выдайте ошибку, потому что год не указан
01:54:04
можно присвоить этому типу Итак, поехали
01:54:06
измените и здесь вместо того, чтобы писать «нет»
01:54:08
давайте поприветствуем здесь Дженнарка
01:54:12
ботаник
01:54:14
получить здесь
01:54:17
пройти здесь
01:54:19
Хорошо, и теперь мы в Creator
01:54:21
пройти пользователя ОК красотка
01:54:27
Есть и этот, так что поехали
01:54:29
поставить квест
01:54:35
и если тебя это немного смущает
01:54:38
часть денег, которая остается спокойной, ок
01:54:39
Хотя это более сложная часть
01:54:41
Я решил принести это сюда, чтобы вы могли посмотреть.
01:54:43
даже идея реального проекта
01:54:45
платите серьезно, мы часто этим пользуемся
01:54:47
рынок труда, поэтому я нашел
01:54:48
Важно привнести эти вещи больше
01:54:50
продвинутый здесь, но ты нет
01:54:52
уметь очень хорошо понимать
01:54:53
спокойно Скопируй это здесь и потом ты
01:54:55
ты поймешь программирование, как этот чувак
01:54:57
ты увидишь то, чего не увидишь
01:54:58
понял, скажи мне, что это такое
01:55:00
но потом, через некоторое время, ты будешь
01:55:02
Если вы посмотрите, вы узнаете об этом больше, и я
01:55:04
Я просто хочу спровоцировать это в тебе
01:55:05
чтобы показать тебе, что это действительно круто
01:55:07
чтобы вам было интересно и
01:55:09
узнать больше об этом здесь вы узнаете
01:55:11
Он даже преподает там на моем курсе такси.
01:55:12
потому что я упомянул об этом здесь в начале
01:55:14
видео Но красота Давайте следить за
01:55:16
мы создали здесь эти функции Realpers
01:55:18
Пришло время поправиться, чтобы я не закончил все
01:55:22
время, вернув объект, который мы уже улучшили
01:55:23
вот наш пользователь Crate, которого мы улучшим
01:55:25
теперь удалите пользователя здесь, у нас будет
01:55:28
что делать теперь, когда этот парень собирается
01:55:30
вернуться, чтобы ответить, вернется или
01:55:32
пользователь или строка, это будет ошибка
01:55:35
здесь мы вернем неверный запрос
01:55:39
с сообщением пропало
01:55:43
красота и вот мы вернем ок
01:55:48
с пользователем и общим, который будет
01:55:51
пользовательское шоу
01:55:54
так что теперь давайте возьмем котят сюда
01:55:57
здесь мы тоже сделаем это хорошо
01:56:00
вспоминая нашу настоящую, чтобы
01:56:01
в основном возвращает состояния с 200 и
01:56:03
боди, которое мы ему передаем потом
01:56:04
вернется сюда, если пользователи с
01:56:06
статус covg 200, значит здесь будет пользователь
01:56:08
список пользователей
01:56:14
красота и вот это кружево мы положим
01:56:17
здесь явно сказано, что она вернется
01:56:20
Обещание с
01:56:23
с пользователем список пользователей или
01:56:25
нить
01:56:27
красота и здесь в КПП мы поставили
01:56:30
ошибка сервера, которая будет еще одной реальной
01:56:32
потому что мы собираемся создать здесь
01:56:34
Я собираюсь скопировать это
01:56:37
Видео уже огромное, чувак, но давай
01:56:39
давай сделаем это
01:56:40
ошибка сервера ничего не получит
01:56:42
он вернет 500, что в основном
01:56:46
будет сообщение
01:56:48
Венди, от этого будет еще одна ошибка
01:56:50
универсальный, верно, поэтому здесь мы вернем
01:56:53
ошибка сервера здесь, в CAT
01:56:55
и нам не нужно получать эту ошибку
01:56:57
вот он даст и ты не получишь
01:56:59
давай уйдем, ок, и здесь, в остальных
01:57:02
контроль тоже, да, мы это называем
01:57:14
user Здесь много всего, поэтому оно здесь
01:57:18
мы вернем неверный запрос
01:57:25
Итак, здесь нам придется поместить пользователя
01:57:27
Ударять
01:57:31
здесь Плохой запрос также отсутствует
01:57:37
чувак и здесь
01:57:43
и здесь мы вернем ок
01:57:47
импортированные подсказки
01:57:49
передавая пользователя и здесь говоря, что это
01:57:51
парень будет пользователем и здесь, в CAT
01:57:54
стать сервером
01:57:57
красота, так стало намного лучше, да?
01:58:00
мы возвращаем весь этот объект
01:58:02
время стало намного лучше
01:58:04
ок, он прошел все проверки, верно?
01:58:07
посмотрим, работает ли оно, посмотрим, работает ли оно
01:58:10
наш сервер работает ок, поехали
01:58:12
попробуйте создать пользователя здесь, получите
01:58:15
пользователи красоты, давайте попробуем обновить
01:58:18
тот парень
01:58:20
вот я прошел это поле, позволь мне взять его
01:58:22
ок, попробуем удалить
01:58:25
красотка, это работает, так что давай сделаем это
01:58:28
приглашение сюда и Тед
01:58:33
функции контроллера
01:58:42
есть что-то еще, последнее, что здесь есть
01:58:44
Что мы можем сделать, так это добавить меню
01:58:47
вот ради этих кодов, да?
01:58:50
добавляйся сюда для звонков поехали
01:58:52
добавьте сюда, парень звонит одному
01:58:54
меню под названием «Код состояния ATP»
01:58:59
что здесь у нас будет ок, что будет
01:59:01
Если их будет 200, то будет Плохо.
01:59:05
запросы, которые будут выдавать ошибку сервера 400
01:59:08
это будет 500 и у нас будет
01:59:10
создано, которое будет 201, так что теперь
01:59:15
возврат по закону
01:59:16
напрямую, чтобы мы могли получить
01:59:19
код статуса htp, точка, ок, то же самое
01:59:23
здесь о
01:59:24
создатель точек
01:59:29
Квест htps
01:59:38
мы можем поставить код статуса
01:59:40
это будет не так
01:59:42
Хорошо, если мы попытаемся потратить
01:59:45
код состояния, который не является одним из этих значений
01:59:47
здесь у нас будет ошибка
01:59:49
закрыто, посмотрим, работает ли он еще
01:59:51
приложение запущено, давайте сделаем
01:59:54
приглашение, тогда это вам подходит
01:59:56
гиткомит
01:59:58
Краевой отражатель
02:00:03
HTTP-код статуса
02:00:07
личная красота тогда Это были
02:00:10
отражатели, которые я хотел сделать
02:00:12
Есть еще одно, видео очень длинное, но
02:00:15
мы уже здесь, давай сделаем это, давай сделаем это
02:00:17
что-то мы здесь часто повторяем
02:00:19
Ребята, это было упущение, да, в репозиториях?
02:00:21
Итак, давайте бросим это сюда на
02:00:23
интерфейс, поэтому здесь, внутри папки
02:00:25
репозитории Создадим файл
02:00:27
называется
02:00:29
монголы
02:00:31
и здесь мы создадим интерфейс под названием
02:00:34
пользователь mongo, который по сути будет
02:00:37
Что на самом деле упущено, так это то, что будут, будут
02:00:39
быть Типом здесь, то это будет
02:00:43
опустить, и пользователь фактически удалит этот E
02:00:48
Итак, давайте изменим все это здесь и
02:00:51
посмотри, как круто, посмотри, какое волшебство я собираюсь сделать
02:00:52
сделай это здесь, я скопирую этого парня
02:00:55
поищи здесь
02:00:56
и я собираюсь заменить их все сейчас
02:01:00
Я не хочу ничего меньшего, чем это
02:01:02
что мы только что создали тогда
02:01:04
Я удалю это и все изменю
02:01:07
это для монгольского
02:01:09
какой интерфейс мы создали и
02:01:12
теперь нам придется импортировать все
02:01:13
поэтому я импортировал его сюда, позвольте мне посмотреть
02:01:16
здесь, где я изменил, взял пользователя, вот и я
02:01:19
необходимость импортировать в точку входа
02:01:24
позвольте мне увидеть больше здесь
02:01:29
поэтому мы взяли больше повторений
02:01:30
код правильный, что всегда хорошо
02:01:33
ок, думаю все ок, давайте перезапустим
02:01:36
сервер, чтобы проверить, работает ли он нормально
02:01:37
так что начало пряжи должно
02:01:43
личное шоу с мячом, поэтому мы сделали это здесь
02:01:46
красивая вещь, мы еще одно
02:01:49
много повторяюсь, вот и всё, да?
02:01:52
заменяет
02:01:57
на самом деле мы заменяем
02:02:01
Но я оставлю там домашнее задание
02:02:03
ради тебя ты можешь сыграть в это здесь
02:02:04
в монгольском клинте останется
02:02:07
Это действительно здорово, если мы получим это здесь
02:02:10
например, создайте здесь метод карты, который
02:02:13
проделайте эту логику, и тогда вы сможете использовать это
02:02:15
метод карты здесь, где мы находимся
02:02:16
повторение этого кода будет в порядке
02:02:18
тоже круто, но давай сделаем приглашение
02:02:20
о том, что мы только что сделали тогда
02:02:22
Давайте возьмем биткомитет Чада Fit Edge.
02:02:31
это был Fit, да, мы добавили его
02:02:34
здесь новый интерфейс
02:02:36
надевание Fit Beleza дает Clear ок
02:02:39
Ребята, вот мы и сделали наш ПИ здесь
02:02:42
Это работает, это действительно круто
02:02:44
архитектура вот настоящий мужчина
02:02:46
здорово, что ты поместишь в свое портфолио
02:02:48
в своем резюме вы это отразите
02:02:49
вы очень хорошо усвоили несколько принципов
02:02:51
важно в программировании, а также
02:02:53
принципы Solid репозитория, который
02:02:57
стандарт, широко используемый на рынке
02:02:58
очень верно, вы видели здесь причину, верно?
02:03:01
это делает наше приложение очень
02:03:02
гибкий, так что теперь давайте перейдем сюда, чтобы
02:03:05
заключительный этап, и мы развернем это
02:03:07
чувак, давай соберем и развернем
02:03:09
да Пи, так что давайте, ребята
02:03:11
мы будем использовать сервис под названием
02:03:15
Рэйвей, очень сложно сказать это, но
02:03:18
мы будем использовать эту услугу здесь, чтобы
02:03:19
Депо наше приложение
02:03:21
К сожалению, он герой, который является самым
02:03:23
популярный, вы наверняка его уже знаете
02:03:25
предлагает еще один бесплатный план Итак
02:03:27
Это один из вариантов, который мы предлагаем
02:03:29
принеси это ему сегодня, ок, тогда иди
02:03:32
Зайти на сайт очень просто
02:03:34
Это действительно хорошо, и вы собираетесь это создать.
02:03:37
проект здесь, и вы нажмете здесь
02:03:40
Развертывание из Gith и здесь, когда вы
02:03:43
щелчок появится для вас, чтобы выбрать
02:03:45
репозитории, которые вам нужны
02:03:49
сервис здесь у вас есть доступ к
02:03:50
например, я думаю, появится, появится
02:03:52
Этот экран появляется здесь и
02:03:54
вы выберете вкладчика, которого
02:03:56
мы только что создали этих пользователей
02:03:58
API. Затем вы выберете его здесь.
02:04:02
потом вот красота и вот мы
02:04:05
будет нажимать на наречия, потому что потому что
02:04:08
здесь мы добавим переменные
02:04:10
среды, которую мы добавили сюда
02:04:12
Так, например, держите руку, дбел и
02:04:15
и так далее, и примечание здесь
02:04:17
Ребята, нам придется использовать монго
02:04:19
dba Atlas, чтобы выполнить депланирование, тогда если
02:04:21
вы еще не настроили режим dba
02:04:23
транс возвращается сюда в начале видео
02:04:25
настройте там, а затем перейдите сюда
02:04:27
со мной, ок, вот первый
02:04:29
переменную я поставлю монгольский
02:04:32
старый будет этот
02:04:35
Хорошо, я тебе светодиод сюда дам, я его добавлю.
02:04:38
еще одна переменная, которая будет БД Монго
02:04:40
имя пользователя, которое будет root
02:04:44
Я добавлю еще один, который будет
02:04:46
пароль
02:04:48
это будет один два три и дверь а
02:04:50
Мы можем позволить Рэйвею самому
02:04:53
идти
02:04:54
измените его там для нас. Хорошо, вот
02:04:57
мы уже добавили переменные
02:04:58
необходимо сейчас вот в серии это
02:05:00
Здесь очень важно, мы спускаемся
02:05:03
немного здесь
02:05:04
поместите команду сборки, которая
02:05:07
именно этот, да, сборка из пряжи Итак
02:05:09
давай загадаем
02:05:13
и теперь здесь, в командах запуска
02:05:23
пусть это будет именно такая красота
02:05:25
сейчас закрыто да, мы готовы
02:05:27
развернуть
02:05:31
он уже успешен
02:05:34
сделал это один здесь, поэтому, если я нажму здесь
02:05:36
давайте посмотрим логи
02:05:40
журналы сборки он сделал сборку
02:05:44
красота
02:05:51
я думаю, он все еще строит
02:05:52
Тогда я подожду немного Смешно
02:05:55
что он добился успеха, да? И он это делает?
02:05:57
сборка все еще, но наконец
02:06:00
покажите ребята, чтобы он это слушал
02:06:04
порт 80 16 теперь, ребята, получите доступ
02:06:06
Наше приложение, в котором мы приходим сюда
02:06:08
series, и мы приходим сюда в Generate Do
02:06:10
мужчина
02:06:12
слушай, он создал здесь домен, чтобы мы могли принять в нем участие
02:06:14
мы нажимаем сейчас и ставим
02:06:16
например пользователи Barra
02:06:23
в том, что здесь требуется некоторое время, чтобы
02:06:24
обновить личную красоту сейчас, это всего лишь вопрос времени
02:06:26
нажимаю сейчас и ставлю панель пользователей
02:06:29
обратите внимание, что у него уже есть список здесь
02:06:32
для меня пусто и я могу например
02:06:34
здесь, в Postman, создайте пользователя в этом
02:06:38
Итак, я могу создать пользователя здесь
02:06:50
Посмотрите, какая красивая вещь, ребята, так что
02:06:52
Мы создали Our Pay и внедрили его сейчас
02:06:54
теперь вы можете поместить это в свое портфолио
02:06:57
и есть вещи, которые мы можем улучшить
02:06:58
Здесь я оставлю это как урок
02:07:00
дом для тебя, чтобы ты мог практиковаться
02:07:02
Первый из них — разместить эти
02:07:05
Файлы корней здесь в одном файле
02:07:07
отдельно видео было уже очень длинным
02:07:08
Так что я не собираюсь этого делать, я оставлю это.
02:07:09
чтобы ты потренировался, это полезно для тебя
02:07:11
делай что-то один тоже один
02:07:14
ок, исправь контент ещё и
02:07:16
все остальное, так что поместите этих ребят сюда
02:07:19
в отдельном файле все будет хорошо
02:07:21
лучше, а также создает другой контроль и
02:07:24
еще один репозиторий, чтобы поймать пользователя
02:07:26
судя по вашему удостоверению личности, мы этого не делали
02:07:28
Мы не можем этого сделать, например
02:07:30
ах, иди сюда, на почту, дай мне получить, нет
02:07:34
для этого конкретного типа пользователя получите
02:07:36
/пользователи сокращают это, поэтому я приглашаю
02:07:39
тебе тоже нужно сделать это упражнение
02:07:42
одно из них - переместить эти раунды сюда в один
02:07:45
отдельный файл, вы также создаете это
02:07:47
новый репозиторий, который будет, например
02:07:49
получить пользователя
02:07:51
контроля, чтобы вы могли практиковать все, что вы
02:07:54
мы делали это здесь, в этом классе, до сих пор
02:07:56
Хорошо, давайте здесь много спрашивать
02:07:59
Спасибо вам, кто остался до конца
02:08:00
чувак, я так горжусь, это было видео
02:08:02
огромный, я думаю, их было больше двух
02:08:03
часы контента здесь, но все, что вы
02:08:06
узнал все здесь
02:08:07
архитектура, которую мы использовали
02:08:10
как написать код всего этого
02:08:11
ты обязательно найдешь это в
02:08:13
реальные рыночные проекты, потому что мы
02:08:15
использовал несколько чрезвычайно
02:08:17
популярно и это делает наше приложение
02:08:19
очень гибкий с очень
02:08:21
солидно, значит, ты действительно научился
02:08:23
много вещей, с которыми тебе осталось
02:08:24
Если у вас есть вопросы, вы можете задать их мне в комментариях
02:08:26
и чувак, помни эту встречу, я
02:08:29
Я не думаю, что я даже сделал это
02:08:30
обязательства перед вами в начале, но если
02:08:32
вам понравился этот контент, если это
02:08:33
контент для тебя ставь палец вверх
02:08:36
ниже и подпишитесь на канал, который
02:08:38
Это действительно мотивирует меня продолжать
02:08:39
принося сюда такой контент, чтобы
02:08:42
ты меня очень мотивируешь и
02:08:44
отправь это видео сюда своему другу
02:08:45
друг, который хочет сделать один
02:08:48
заплатить полную сумму, кто хочет учиться
02:08:49
больше вещей, а также построить свои собственные
02:08:52
сначала API будет служить этому видео
02:08:54
для него тоже, но на этом я остановлюсь
02:08:56
Увидимся в следующем видео, спасибо большое
02:08:58
обнимаю, пока, пока

Описание:

Neste vídeo criaremos uma API REST completa, com um CRUD de usuários, usando Node, Express, TypeScript e MongoDB. Também faremos o seu deploy para o Railway. Aprenderemos vários conceitos super importantes, como: • Princípios do SOLID • Injeção de dependência (Dependency Injection) • Repository Pattern • E muito mais! Código finalizado da API: https://github.com/felipemotarocha/users-typescript-api PARTICIPE DA NOSSA COMUNIDADE NO DISCORD: https://discord.com/invite/DhHz6vT7dU -------------------------- LINKS: ▸ Visual Studio Code: https://code.visualstudio.com/download ▸ Node.js: https://nodejs.org/en/download/package-manager ▸ MongoDB Atlas: https://www.mongodb.com/products/platform/atlas-database ▸ Postman: https://www.postman.com/downloads/ -------------------------- ASSISTA AOS MELHORES VÍDEOS DO CANAL: ▸ CURSO DE TYPESCRIPT PARA COMPLETOS INICIANTES https://www.youtube.com/watch?v=ppDsxbUNtNQ ▸ CURSO DE NODE.JS PARA COMPLETOS INICIANTES https://www.youtube.com/watch?v=IOfDoyP1Aq0 ▸ CURSO DE REACT PARA COMPLETOS INICIANTES https://www.youtube.com/watch?v=ErjWNvP6mko -------------------------- REDES SOCIAIS: GitHub: https://github.com/felipemotarocha%E2%80%8B%E2%80%8B Instagram: https://www.facebook.com/unsupportedbrowser Telegram: https://t.me/dicasparadevs -------------------------- TIMESTAMPS: 00:00:00 - Introdução 00:01:10 - Setup do Projeto 00:08:39 - Configurando o Express 00:11:04 - Arquitetura da API (Controllers & Repositories) 00:12:08 - Repository Pattern 00:14:31 - Criando o GetUsersController 00:24:27 - Criando o MongoGetUsersRepository 00:30:21 - Configurando o MongoDB com Docker Compose 00:32:05 - Configurando o MongoDB com MongoDB Atlas 00:34:25 - Criando o MongoClient para se conectar com MongoDB 00:44:25 - Chamando o MongoDB no MongoGetUsersRepository 00:51:07 - Criando o CreateUserRepository 00:59:29 - Criando o CreateUserController 01:08:50 - Criando um usuário pelo Postman 01:11:34 - Adicionando validações no CreateUserController 01:18:06 - Criando o UpdateUserRepository 01:24:40 - Criando o UpdateUserController 01:35:13 - Atualizando um usuário pelo Postman 01:36:30 - Criando o DeleteUserRepository 01:40:31 - Criando o DeleteUserController 01:44:10 - Deletando um usuário pelo Postman 01:45:01 - Fazendo refatorações 02:03:03 - Fazendo o Deploy

Готовим варианты загрузки

popular icon
Популярные
hd icon
HD видео
audio icon
Только звук
total icon
Все форматы
* — Если видео проигрывается в новой вкладке, перейдите в неё, а затем кликните по видео правой кнопкой мыши и выберите пункт "Сохранить видео как..."
** — Ссылка предназначенная для онлайн воспроизведения в специализированных плеерах

Вопросы о скачивании видео

mobile menu iconКак можно скачать видео "Crie e Faça Deploy de uma API COMPLETA com Node, TypeScript & MongoDB"?mobile menu icon

  • Сайт http://unidownloader.com/ — лучший способ скачать видео или отдельно аудиодорожку, если хочется обойтись без установки программ и расширений. Расширение UDL Helper — удобная кнопка, которая органично встраивается на сайты YouTube, Instagram и OK.ru для быстрого скачивания контента.

  • Программа UDL Client (для Windows) — самое мощное решение, поддерживающее более 900 сайтов, социальных сетей и видеохостингов, а также любое качество видео, которое доступно в источнике.

  • UDL Lite — представляет собой удобный доступ к сайту с мобильного устройства. С его помощью вы можете легко скачивать видео прямо на смартфон.

mobile menu iconКакой формат видео "Crie e Faça Deploy de uma API COMPLETA com Node, TypeScript & MongoDB" выбрать?mobile menu icon

  • Наилучшее качество имеют форматы FullHD (1080p), 2K (1440p), 4K (2160p) и 8K (4320p). Чем больше разрешение вашего экрана, тем выше должно быть качество видео. Однако следует учесть и другие факторы: скорость скачивания, количество свободного места, а также производительность устройства при воспроизведении.

mobile menu iconПочему компьютер зависает при загрузке видео "Crie e Faça Deploy de uma API COMPLETA com Node, TypeScript & MongoDB"?mobile menu icon

  • Полностью зависать браузер/компьютер не должен! Если это произошло, просьба сообщить об этом, указав ссылку на видео. Иногда видео нельзя скачать напрямую в подходящем формате, поэтому мы добавили возможность конвертации файла в нужный формат. В отдельных случаях этот процесс может активно использовать ресурсы компьютера.

mobile menu iconКак скачать видео "Crie e Faça Deploy de uma API COMPLETA com Node, TypeScript & MongoDB" на телефон?mobile menu icon

  • Вы можете скачать видео на свой смартфон с помощью сайта или pwa-приложения UDL Lite. Также есть возможность отправить ссылку на скачивание через QR-код с помощью расширения UDL Helper.

mobile menu iconКак скачать аудиодорожку (музыку) в MP3 "Crie e Faça Deploy de uma API COMPLETA com Node, TypeScript & MongoDB"?mobile menu icon

  • Самый удобный способ — воспользоваться программой UDL Client, которая поддерживает конвертацию видео в формат MP3. В некоторых случаях MP3 можно скачать и через расширение UDL Helper.

mobile menu iconКак сохранить кадр из видео "Crie e Faça Deploy de uma API COMPLETA com Node, TypeScript & MongoDB"?mobile menu icon

  • Эта функция доступна в расширении UDL Helper. Убедитесь, что в настройках отмечен пункт «Отображать кнопку сохранения скриншота из видео». В правом нижнем углу плеера левее иконки «Настройки» должна появиться иконка камеры, по нажатию на которую текущий кадр из видео будет сохранён на ваш компьютер в формате JPEG.

mobile menu iconСколько это всё стоит?mobile menu icon

  • Нисколько. Наши сервисы абсолютно бесплатны для всех пользователей. Здесь нет PRO подписок, нет ограничений на количество или максимальную длину скачиваемого видео.