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

Скачать "All Functional MERN Stack LMS / Learning Management system series with next 13, TypeScript | Part 1"

input logo icon
Обложка аудиозаписи
Подождите немного, мы готовим ссылки для удобного просмотра видео без рекламы и его скачивания.
console placeholder icon
Оглавление
|

Оглавление

0:00
Project Overview
26:40
Software Design / Project Plan
37:34
Technology brief //Which technology we will use and why we will use these technologies
53:09
Code Editor overview
57:13
Project server setup
1:04:21
Database, Cloudinary, Redis connection
1:26:03
Handle Errors
1:43:22
User model design
1:59:23
User registration
2:34:21
User Activation
2:46:15
User login, logout
3:12:02
User protected & Authorization middleware
3:23:34
Generate new Access token, user social authentication, get user info
3:49:16
Update user info, password, avatar
4:19:55
Course Model design
4:38:23
Create course, Edit course
4:57:12
Get single and all courses -- without purchasing
5:14:48
Get course content,get user accessible all courses --- only for valid-user
5:25:20
Create question, add reply in question
5:51:07
add review in course
6:14:48
Notification and Order model
6:22:08
Create Order
6:47:38
Get all notifications, update notification status
7:07:40
Delete read notifications -- with crone after a certain time
7:14:23
Get all users, courses, orders
7:23:38
Add and get members in Admin dashboard
7:28:45
Delete course, Delete user
7:38:16
Get the last 28 days' users,orders, notifications for the last 1year
8:00:16
Layout model Design
8:07:23
Create Faq,Hero banner,Categories
8:25:00
Edit Faq,Hero banner,Categories
8:39:20
08:55:00 Advance cache maintenance
Теги видео
|

Теги видео

mern
lms
fullstack
fullstack website
react
node
express
mongodb
express js
full stack website development
full stack website project
full stack website
all functional
redux
webstorm
web development full course
web development
web design
mern full project
mern stack app
mern stack project
react js
express js tutorial
socket io
becodemy
redux toolkit
rtk query
learning management system project
learning management system tutorial
next js 13 tutorial
redis
mern_stack
nodejs
tailwindcss
socketio
Субтитры
|

Субтитры

subtitles menu arrow
  • enАнглийский
Скачать
00:00:02
у тебя все хорошо, так что сегодня в этом
00:00:04
видео, которое мы собираемся начать с Industrial
00:00:06
Полнофункциональная веб-платформа LMS уровня
00:00:08
Серия приложений, если вам интересно
00:00:10
научиться масштабировать приложение или
00:00:13
как защитить приложение от
00:00:15
хакеры или как оптимизировать скорость для on
00:00:18
приложения, затем щелкните значок
00:00:20
правильное видео
00:00:21
в этом видео я научу тебя
00:00:23
почти самое важное
00:00:25
разработка программного обеспечения, которую вы, возможно, знаете
00:00:27
до
00:00:29
так что мне очень интересно начать
00:00:31
эта серия такая, какая ты есть, так что не теряй зря
00:00:34
время, давайте посмотрим, какие у нас приложения
00:00:36
собираюсь начать сегодня, хорошо, ребята, так что вы
00:00:38
могу видеть мой экран прямо сейчас
00:00:40
а это домашняя страница нашего сайта I
00:00:43
поверьте, это выглядит очень великолепно
00:00:45
очень круто, если я не ошибаюсь
00:00:48
фон, ну, это вроде как на CSS
00:00:51
классная работа, которую я добавил сюда, она похожа на тебя
00:00:54
знаю, что я добавил сюда непрозрачность и
00:00:56
противоположные анимации, это как моргание
00:00:59
в город, тогда светлый цвет, это действительно
00:01:01
выглядит потрясающе, и у нас есть темная тема
00:01:03
и зажгите их на этом сайте, окей, типа
00:01:05
я и я так думаю, обе команды
00:01:07
хорошо выглядеть
00:01:09
и одна удивительная особенность — это мы
00:01:13
можете обновить этот баннер у нашего администратора
00:01:15
приборная панель, хорошо, позвольте мне показать вам
00:01:17
панель администратора это наш администратор
00:01:18
панель инструментов, в которой есть много вещей
00:01:20
эта панель администратора, которая по сути
00:01:22
ты не узнаешь, как ни в одном
00:01:23
YouTube видео
00:01:25
у нас есть аналитика для всего, например
00:01:28
аналитика пользователей заказывает курсы по аналитике
00:01:31
аналитика, и эта аналитика совершенно
00:01:34
в реальном времени, окей, я имею в виду, что мы такие
00:01:37
делаю аналитику за последние 12
00:01:39
месяцев, а это все графики, так что если
00:01:42
Я нажимаю на эту аналитику курсов, а затем
00:01:44
заказать его аналитику
00:01:47
и поскольку мы только начали эту серию, окей
00:01:50
вот почему у меня не так много
00:01:51
данные в противном случае, как будто они покажут все
00:01:53
данные в порядке, тогда пользователи Analytics
00:01:59
это своего рода другая диаграмма, окей, так что
00:02:03
главное здесь и отсюда
00:02:06
мы можем обновить это изображение, хорошо, мы можем
00:02:11
обновить этот текст
00:02:14
мы можем обновить все и сохранить
00:02:16
если мы сможем обновить наш FAQ, хорошо, мы можем
00:02:20
отредактируйте текст, мы можем отредактировать ответ, который мы
00:02:22
можем удалить его, мы можем добавить новый, окей, мы
00:02:26
можете обновить категорию нашего курса, чтобы вы
00:02:28
можем изменить название или добавить новое
00:02:30
категория также
00:02:32
тогда давай вернемся сюда сейчас
00:02:36
мы можем начать счет, хорошо
00:02:39
и это страница нашего курса, вот здесь
00:02:42
это щас мы только заработали
00:02:44
код, поэтому он отображается как
00:02:45
это типа ты можешь так думать
00:02:47
своего рода копия потому что я, ладно, нет
00:02:50
полностью копирую, потому что да, я добавил лайк
00:02:52
некоторые функции, которых нет
00:02:54
потому что вкусно, окей, тогда это обзор
00:02:57
Пятно, э-э, сейчас это статично, окей
00:02:59
потому что, очевидно, когда ты
00:03:02
запуск новых приложений, эх ты
00:03:04
нужно поставить лайк, добавить сюда несколько отзывов
00:03:06
очевидно, в первый раз у тебя нет
00:03:08
всем нравятся динамические обзоры, вот почему
00:03:11
вот это типа маркетинг, так что ты
00:03:13
просто добавлю его, настрою по вашему
00:03:15
оригинальные обзоры сейчас FAQ, который
00:03:18
динамика полностью и это на баннерах
00:03:21
так что нижний колонтитул не баннер, окей, круто
00:03:24
а теперь, ребята, кое-что, чего я не хочу
00:03:27
покажу вам, но это полностью мобильно
00:03:29
ответственный, ладно, потому что это очень
00:03:30
обычное дело, он полностью мобильный
00:03:32
отзывчивый, окей, и прямо сейчас позволь мне
00:03:34
показать вам часть аутентификации, которая
00:03:35
это своего рода главная удивительная вещь в
00:03:37
вот так дай мне сначала выйти из системы
00:03:40
мгновенный выход из системы, поэтому я нажимаю здесь и
00:03:43
Я нажимаю на этот логин, поэтому обратите внимание, что мы
00:03:46
собираюсь использовать здесь
00:03:48
проверка formic и Yap Farm для этого
00:03:51
форма окей, так что это очень похоже на что-то вроде
00:03:54
хорошая форма проверки для проверки наших
00:03:55
форма, и это отображается вот так, окей
00:03:58
теперь, если ты нажмешь, просто зарегистрируйся
00:04:01
вот и все
00:04:03
так что у нас есть
00:04:05
социальная аутентификация, и у нас есть руководство
00:04:07
аутентификация как будто декодирует меня, окей
00:04:09
поэтому позвольте мне сначала попробовать вручную
00:04:11
аутентификация, я даю имя вот так
00:04:13
Я передаю это письмо, и я
00:04:16
сдача по паспорту
00:04:18
поставь лайк и подпишись
00:04:20
и обратите внимание, что изображение уже существует, поэтому вы
00:04:22
не могу создать учетную запись с этой почтой, поэтому
00:04:25
Я пробую новую почту, например поддержку по адресу
00:04:28
отредактируйте picotemy.com и нажмите «Зарегистрироваться»
00:04:31
и прямо сейчас оно загружается и пожалуйста
00:04:33
проверьте свою электронную почту, чтобы активировать
00:04:36
аккаунт, поэтому мы отправляем OTP на четыре
00:04:40
цифра OTP в предыдущей электронной коммерции
00:04:44
один я заметил много много комментариев эй
00:04:47
ссылка активации не работает, поэтому
00:04:50
вот почему я обновил его до OTP, окей
00:04:52
сейчас его нет в активации
00:04:54
ссылку вы получите по OTP на свою почту
00:04:56
но, очевидно, мы разрабатываем электронную почту, я
00:04:59
показываю тебе, вот и все, это почта
00:05:01
хорошо
00:05:02
добро пожаловать на электронное обучение здравствуйте, спасибо
00:05:06
для регистрации регистрация в
00:05:07
электронное обучение, ребята, это совсем не похоже
00:05:10
просто, как пирожные, это по шаблону
00:05:13
окей, возможно, ты раньше не смотрел
00:05:16
любой учебник, например, как отправить шаблон
00:05:18
с помощью node.js, окей, наверное, ты
00:05:21
не смотрел его раньше
00:05:23
окей, круто, так что в этом уроке я
00:05:26
научу тебя всему этому, например, как
00:05:28
отправлять динамические шаблоны даже не только
00:05:30
при аутентификации мы отправляем электронное письмо
00:05:32
для многих других вещей, ты мне тоже нравишься
00:05:34
знай, для проверки, окей, много
00:05:37
вещи, которые я имею в виду для порядка, а затем для
00:05:41
например, когда ты задаешь вопросы
00:05:43
затем администратор ответит, тогда вы получите
00:05:45
вся почта в порядке, вы получите почту от всех
00:05:48
время, ладно, теперь скопируй этот код и приходи
00:05:51
здесь и сначала попробуйте использовать неправильный код, например
00:05:53
это теперь проверка OTP
00:05:57
код активации и он движется, я
00:05:59
еще раз щелкнув, он движется и становится красным
00:06:03
прямо сейчас, так что прямо сейчас я добавляю
00:06:05
правильно один три семь семь четыре окей
00:06:08
Мне не нужно нажимать здесь, это
00:06:10
автоматически перехожу к следующему сейчас
00:06:12
если я нажму «Подтвердить OTP», это будет учетная запись
00:06:15
активировать успешно, это означает, что наш аккаунт
00:06:17
творение сделано прямо сейчас, если я попытаюсь
00:06:20
войдите в эту почту, извините, эту учетную запись, позвольте
00:06:23
мне войти в систему, как этот вход успешно
00:06:25
с научной точки зрения это дает профиль
00:06:27
картинка, но у тебя ее нет
00:06:28
изображение профиля, вот почему оно дает
00:06:30
как и по умолчанию, вы можете изменить пароль
00:06:32
но поскольку у вас нет пароля, напишите
00:06:34
так что ты не можешь этого сделать, извини, да, мы
00:06:36
есть пароль, чтобы вы могли изменить наш
00:06:37
пароль и на ваших курсах мы не используем
00:06:41
есть инженерные курсы, вот почему это так
00:06:42
не показывает, окей
00:06:44
так что прямо сейчас, ребята, нажмите на эту страницу курса
00:06:47
это страница с подробным описанием нашего курса
00:06:50
одна вещь, ребята, и я вам скажу, что это
00:06:53
если вы думаете о платформе LMS
00:06:56
вроде главное здесь
00:06:59
часть безопасности права, очевидно, э-э
00:07:03
Я сейчас не покупаю это
00:07:06
конечно, чтобы я не застрял, я не
00:07:08
получите информацию о курсе здесь, когда
00:07:11
мы отправляем запросы в этом, эээ
00:07:14
наш API не отправляет, как все
00:07:17
информация о наших курсах, таких как
00:07:18
URL-адрес видео, затем лайк исходного кода видео
00:07:21
окей, это очень хорошо защищено
00:07:24
хорошо
00:07:25
и если я приведу вам пример по этому поводу
00:07:28
видеоплеер, который мы используем здесь
00:07:30
название платформы видео шифр который
00:07:33
платформа предоставляет нам шифрование DRM, поэтому
00:07:37
если мы реализуем шифрование JRM в этом
00:07:39
видеоплеер, это означает, что мы не можем записывать
00:07:42
это видео хорошо, так что я сейчас
00:07:43
записываю, поэтому, когда я включаю это видео
00:07:45
нет, это ничего не показывает, это
00:07:48
полностью черный, это означает, что мы не можем записывать
00:07:51
наше видео это тебя очень защитит
00:07:54
не могу скачать это видео с помощью
00:07:56
все в порядке, ты не можешь скачать это
00:07:58
тогда ты тоже не можешь, как мы не можем взять
00:08:01
любой скриншот тоже это очень высоко
00:08:04
защищенный
00:08:05
окей, круто, ребята, давайте я вам покажу
00:08:08
вид главного интересного
00:08:10
функции в наших приложениях, окей, я
00:08:13
верю, что вам понравится это уведомление
00:08:16
Админ делает то, что сейчас не работает
00:08:18
потому что сейчас я вошел в систему под пользователем
00:08:20
аккаунт, поэтому давай сделаем одну вещь
00:08:22
позвольте мне прямо сейчас войти в админку
00:08:24
аккаунт, поэтому я нажимаю новую вкладку
00:08:27
и я вхожу в другую главную
00:08:30
круто, а теперь пойдем на сайт
00:08:37
и это наш сайт
00:08:40
пойдем сюда
00:08:43
и здесь позвольте мне войти в админку
00:08:45
аккаунт окей окей ребята, так что прямо сейчас я
00:08:48
прямо сейчас в этой панели администратора, окей
00:08:49
поэтому я прямо сейчас показываю вам это
00:08:52
особенности того, о чем я на самом деле говорю
00:08:53
так что я сделаю это наполовину, окей
00:08:57
тогда ты поймешь это лучше
00:08:59
так что я прямо сейчас заказываю
00:09:04
Я сейчас отдаю приказ, окей, так что
00:09:06
просто вводное письмо, окей, впиши
00:09:12
и одна вещь, ребята, обратите внимание: мы можем заплатить
00:09:14
прямо сейчас с после оплаты наличными в банке США
00:09:16
приложение много платежных шлюзов даже в порядке
00:09:19
Google Pay тоже, поэтому я реализовал здесь
00:09:22
полоску, поэтому я и реализовал
00:09:25
полоса полосатый элемент, хорошо, я так и сделаю
00:09:28
покажу вам подробное видео, окей
00:09:30
видео часть, например, как это реализовать
00:09:32
итак, э-э, CVC, вот так, теперь нажмите «Заплатить сейчас»
00:09:37
теперь проверь это
00:09:42
Я знаю, слышишь ты звук или нет
00:09:45
даже мгновенное уведомление выдается
00:09:48
со звуковым уведомлением, уже шесть
00:09:52
у вас новый заказ от Minecraft LMS
00:09:55
Серия систем управления посадкой с
00:09:57
машинописный текст, это уведомление о том, как
00:10:00
невероятно, правда
00:10:01
наверное я первый кто это
00:10:03
создание этих функций в этом типе
00:10:06
как будто ты знаешь полноценные курсы, окей
00:10:08
и YouTube на YouTube прямо сейчас
00:10:10
да, я замечу, как какой-то другой репетитор
00:10:13
а также кто делал уроки с лайком
00:10:15
система уведомлений, но без звука
00:10:16
или нет, с таким большим
00:10:20
большие приложения, верно
00:10:22
поэтому я считаю, что эти функции действительно
00:10:24
круто и вроде можно отметить как прочитанное
00:10:26
это нормально, я имею в виду, когда вы нажимаете «Отметить как»
00:10:28
Рик, это произойдет автоматически, теперь это
00:10:31
пять, если я еще раз нажму, будет четыре
00:10:36
хорошо
00:10:38
вот и все, ребята, одно и еще раз
00:10:42
покажи, что ты думаешь, прямо сейчас приди это
00:10:44
счета-фактуры в порядке, но, очевидно, это не так
00:10:46
в реальном времени, поэтому вам нужно дать перезагрузку
00:10:48
это очень распространенное уведомление
00:10:50
только в реальном времени, но если хочешь, то ты
00:10:52
также могу сделать это в реальном времени, тоже хорошо, я
00:10:54
имею в виду это, потому что этот браузер и это
00:10:56
браузер сейчас другой, так что это
00:10:58
почему, ладно, так это конечно то, что ты
00:11:01
купил окей 24 и если ты прямо сейчас
00:11:04
обратите внимание на полученные продажи, это
00:11:05
показываем четыре, и в этом месяце мы получили
00:11:09
это четыре
00:11:11
продажи в порядке, и здесь это тоже
00:11:13
показано на мини-грузе, это создано
00:11:15
это цена, это типа
00:11:17
имя пользователя и идентификатор теперь вернутся сюда
00:11:19
на самом деле
00:11:21
и перейдем к нашему приложению и сейчас
00:11:25
нажмите, чтобы войти в курс, ребята, теперь просто
00:11:28
это наш проигрыватель котировок, также есть
00:11:31
то же самое и здесь мы начнем
00:11:34
включи это, мы не можем посмотреть это видео, окей
00:11:36
потому что это как бы защищено и
00:11:39
это все разделы, если нажать
00:11:41
здесь это видео будет воспроизводиться
00:11:44
если вы нажмете здесь, будет воспроизведено следующее видео
00:11:47
даже предыдущий урок, следующий урок
00:11:50
тоже работает нормально, теперь позволь мне показать тебе
00:11:53
этот вопрос-ответ имеет особенности, так что предположим
00:11:55
Я задаю такие вопросы, как тестирование
00:11:59
вопрос, хорошо, прежде чем отправлять, я
00:12:03
показываю вам панель администратора, которая у нас есть
00:12:04
четыре уведомления Хорошо, теперь нажмите «Отправить»
00:12:10
и вот, пожалуйста, вопрос здесь и сейчас
00:12:12
проверьте нашу панель администратора, вот и все, я
00:12:14
не знаю, слышишь ты звук или нет, но
00:12:15
это было здесь 12 секунд назад и это
00:12:18
новый вопрос получен
00:12:20
и даже прямо сейчас, если я дам отзыв
00:12:22
мне тоже нравится 5 звезд
00:12:25
и это круто, тогда мы получим
00:12:29
уведомление в панели администратора
00:12:31
со звуком
00:12:33
обратите внимание, вот и все
00:12:38
прямо сейчас
00:12:39
дал обзор в Mindstack LMS и
00:12:42
вот это новый вопрос какое видео
00:12:44
об этом нам говорит и видео
00:12:47
админ может прямо сейчас прийти сюда и админ
00:12:48
могу ответить на это
00:12:50
окей, предположим, прямо сейчас я приду
00:12:52
учетная запись администратора
00:12:53
я иду на курс
00:12:58
и я просто даю ответ прямо сейчас
00:13:01
окей, здесь нам нужен данный мастер
00:13:04
ребята
00:13:05
потому что очевидно, что это не так
00:13:07
обновлено
00:13:09
да, так что если ты прямо сейчас проверишь, извини
00:13:12
извините, с видео это
00:13:14
вообще-то для этого видео
00:13:17
окей, это краткий обзор технологий, да, во-вторых
00:13:20
видео
00:13:21
да, вот и все, это кастинг
00:13:23
вопрос, так что предположим, что я даю ответ
00:13:27
случай
00:13:29
Король
00:13:30
ответь вот так и отправь
00:13:35
и вот, ты мгновенно это здесь и
00:13:38
для администратора окей только для администратора ответь на это
00:13:40
покажет эту проверенную лучшую вещь, например
00:13:42
этот студент поймет, да, это
00:13:44
это ответ администратора, окей, вот и все
00:13:48
в этом обзоре администратор также может дать ссылку
00:13:51
отвечать
00:13:53
добавить ответ
00:13:57
мы можем сказать спасибо
00:14:00
так
00:14:04
окей, круто, спасибо, ты здесь, здорово
00:14:08
чтобы мы могли задать вопрос, который мы можем задать
00:14:11
просмотрите здесь, у нас есть варианты ресурсов
00:14:14
где вы можете добавить исходный код или
00:14:17
еще что-нибудь подобное есть по ссылкам
00:14:19
массив, поэтому вы можете добавить сюда что угодно
00:14:21
это наш обзор
00:14:22
теперь, ребята, вернитесь в панель администратора
00:14:24
потому что все почти готово
00:14:26
здесь речь идет исключительно о Пейсе
00:14:28
статическая политика тоже статична. Часто задаваемые вопросы
00:14:31
динамично и прямо сейчас здесь
00:14:34
если ты прямо сейчас зайдёшь сюда, в этот пользователь
00:14:37
курсы, зарегистрированные на учетной записи, это показано
00:14:39
если вы нажмете здесь, это полностью исчезнет
00:14:41
на страницу успеха кода, хорошо, а теперь приходите
00:14:45
вернитесь к панели администратора прямо сейчас и
00:14:46
позвольте мне показать вам панель администратора
00:14:48
функции
00:14:50
так что в первую очередь, если продажи упадут
00:14:53
за последний месяц, тогда это покажет
00:14:55
оцените хорошо, и эта часть предложения
00:14:56
полностью динамическая проверка
00:14:59
тогда у нас есть как и все пользователи здесь
00:15:02
окей, у нас есть счета-фактуры здесь и
00:15:05
все самое важное в
00:15:07
счета-фактуры, если вы учитесь через
00:15:08
бизнес в реальном времени, вам нужно его экспортировать
00:15:10
правильно, чтобы вы могли скачать эти счета-фактуры
00:15:12
скачать в формате CSV или распечатать
00:15:15
также, если вы нажмете здесь, вы сможете
00:15:16
загрузить
00:15:18
а теперь давайте перейдем к самому интересному
00:15:20
то есть создать курс, как на самом деле
00:15:22
создать курс, который работает, это
00:15:24
полностью организованная функция, окей, я показываю
00:15:26
ты
00:15:27
Я даю это имя, мне нравится
00:15:30
такое описание, цена указана вам
00:15:33
знаю 20
00:15:34
ориентировочная цена сто долларов, ок, код
00:15:37
Стеки, я плачу налог, который выбираю.
00:15:40
по категорийному программированию
00:15:42
предположим, программирование, которое я выбираю здесь
00:15:44
а также вы можете добавить новую категорию из
00:15:46
здесь, хорошо, если хочешь, когда я добавлю
00:15:48
новая категория
00:15:49
тогда уровень курса, так что я даю его
00:15:51
промежуточный и демонстрационный URL, который
00:15:54
в общем, ребята, мы используем видео
00:15:56
Шифр для реализации, э-э, Advanced
00:15:59
видеозащита для видео наших курсов
00:16:02
после загрузки видео в видео кибер
00:16:04
панель управления, мы получим идентификатор, поэтому мы просто
00:16:06
нужно добавить этот идентификатор вот так, окей, сейчас
00:16:09
мы можем перетащить миниатюру или поставить лайк
00:16:12
нажмите здесь, чтобы загрузить его, так что, предположим, я
00:16:14
перетаскивание миниатюры, как эта
00:16:17
окей, теперь следующий, вот это
00:16:20
выгода, так вот, будто я копирую это
00:16:22
Я снова открываюсь здесь вот так вот так
00:16:25
этот
00:16:26
да, теперь я нажимаю «Далее»
00:16:29
это название нашего раздела, так что я здесь
00:16:31
раздел с названием «демо» и «видео»
00:16:34
заголовок, чтобы понравиться этому URL, я ставлю лайк
00:16:37
это на данный момент длина видео будет такой
00:16:39
очевидно, минуты, так что я еще раз даю
00:16:41
Здесь описания видео мы можем добавить как
00:16:44
этот
00:16:46
ссылка в порядке, так что эта ссылка в основном
00:16:49
эта ссылка
00:16:51
по этой ссылке мы также можем добавить несколько ссылок
00:16:54
здесь, окей, теперь мы можем после мошенничества
00:16:58
после того, как закончишь это, все предположим
00:17:00
прямо сейчас, ребята, я нажимаю на это, чтобы добавить новое
00:17:02
контент, который мы не можем добавить, очевидно, нам нужен
00:17:04
чтобы это исправить, я имею в виду, нам нужно заполнить это
00:17:06
все поле, если вы нажмете «Добавить новый раздел»
00:17:08
пожалуйста, сначала заполните все поля
00:17:10
отлично, мы проверяем все данные
00:17:13
хорошо, если вы думаете о любой платформе LMS
00:17:16
главная сложность здесь в том, что
00:17:18
структура данных это очень сложно очень
00:17:23
большая структура данных в нашей LMS
00:17:25
приложение
00:17:27
поэтому поддержание этих приложений или если
00:17:29
вы действительно делаете эти приложения
00:17:30
если вы добавите это в портфолио
00:17:33
это действительно поможет вам получить очень
00:17:36
хорошая работа, хорошо, и делая этот проект
00:17:38
вы узнаете много нового, что
00:17:40
ты не знал раньше
00:17:43
теперь мы можем свернуть это видео, например, как
00:17:45
Платформа LMS работает сейчас, ребята, она все еще работает
00:17:48
выдает ошибку, потому что да, нам нужно добавить
00:17:50
здесь, как ты знаешь, все, что мы можем получить
00:17:52
мы можем сказать исходный код
00:17:54
и URL будет таким же, как все, что я даю
00:17:57
окей сейчас
00:17:59
добавьте вот так и теперь добавляйте новый контент
00:18:01
да, оно приближается, так что предположим, что это тест
00:18:04
Я печатаю что-то вроде
00:18:07
что-либо
00:18:10
да, теперь мы можем снова поставить лайк и добавить вот так
00:18:13
предположим, я нажимаю «Добавить новый раздел»
00:18:15
открывается новый раздел
00:18:17
окей вот так
00:18:19
и я покажу тебе еще кое-что
00:18:21
есть и другие интересные
00:18:23
функции в порядке, поэтому предположим, что я создаю
00:18:25
новый раздел
00:18:27
окей, я меняю его имя на
00:18:30
демо, теперь посмотрим, какое это волшебное замечание
00:18:34
не сейчас в том же разделе, потому что
00:18:36
сейчас это тоже демонстрационный раздел, так что
00:18:38
вот почему это произойдет автоматически
00:18:40
первый, так что предположим, после загрузки
00:18:42
после того, как ты добавишь 20 видео, ты
00:18:45
думаю нет, нам нужно добавить новый
00:18:46
видео в первом разделе, окей, сделаешь
00:18:48
просто измените название раздела, оно будет
00:18:50
автоматически попадете в этот раздел
00:18:52
так что просто поймите, насколько организовано
00:18:55
об этом сейчас, если вы нажмете «Далее», вы сможете
00:18:58
получи просмотр предложения на эту полную версию, э-э
00:19:04
как это будет выглядеть в
00:19:06
когда мы создадим этот курс, хорошо
00:19:08
Я не создаю это, потому что не хочу
00:19:10
создать, как любой шпионский код, подобный этому
00:19:12
данные в порядке, тогда живые курсы вы можете увидеть
00:19:15
здесь мы можем редактировать все наши онлайн-курсы
00:19:18
это
00:19:19
и в режиме редактирования мы можем редактировать все
00:19:23
все, что мы можем редактировать, я не делаю
00:19:25
знаю, почему это закрытое дело все еще находится в
00:19:26
вот позвольте мне сделать одну перезагрузку
00:19:38
все значит все, это наше
00:19:40
описание курса это наш курс
00:19:42
имя, даже мы можем обновить это, мы можем
00:19:45
обновите наши видео, также хорошо, если вы
00:19:48
не хотелось бы обновлять какое-либо видео, если вам
00:19:51
например, после загрузки кодов вы также можете
00:19:54
обновите видео или добавьте новое
00:19:56
видео в вашем курсе отсюда
00:19:59
редактируя видео, что очень здорово
00:20:01
особенности и важный теперь контроллер
00:20:03
переключается, как будто мы можем добавить нового участника в
00:20:05
наша панель администратора в порядке
00:20:08
тогда у нас здесь тоже есть, как и у всех
00:20:11
аналитика я уже показывал вам это так
00:20:14
вот и все, ребята, у нас почти все есть
00:20:16
особенности того, что аккуратно, как в LMS
00:20:19
приложение в порядке
00:20:21
прямо сейчас, ребята, я не буду это продлевать
00:20:23
игра разделена на более большую, но я хочу
00:20:25
скажи тебе что-нибудь, ладно, некоторые из моих
00:20:26
личные вещи, окей
00:20:28
Я занимаюсь программированием примерно
00:20:31
последние четыре или пять лет я не такой
00:20:33
это очень похоже на очень экспертного или очень похожего
00:20:36
старый в сообществе программистов
00:20:38
Я занимаюсь программированием в течение последнего
00:20:40
четыре или пять лет, но да, я работаю
00:20:43
upwork, я кооперативный фрилансер, окей
00:20:45
Я был и вроде бы тоже работаю в некоторых
00:20:48
компании я выполнил несколько проектов
00:20:51
но на самом деле
00:20:53
Мне не нравится, что у меня самый высокий рейтинг
00:20:56
фрилансер каждый день, как будто я получаю
00:20:58
очень хорошее предложение о работе от моих клиентов, таких как
00:21:02
ты знаешь, я делаю хороший контент, я
00:21:03
как будто у меня хорошие навыки, как и у моих клиентов
00:21:06
скажи это, ладно, очевидно, что это очень
00:21:09
мне легко нравится легко получить хорошую работу
00:21:11
мне это очень легко, даже у меня есть
00:21:14
предложений тоже много, но я ни одного не принял
00:21:16
из них
00:21:18
потому что я собираюсь что-нибудь сделать для этого
00:21:20
мире, это действительно моя цель, и из
00:21:23
последние 1,5 месяца или полтора месяца я
00:21:27
делаю этот курс
00:21:28
Я не брал ни одного проекта из
00:21:31
upwork, я получил много предложений от таких, как
00:21:34
мои клиенты в порядке
00:21:36
как то управлял фрилансер, так что это очень
00:21:38
легко прямо сейчас поставить лайк и получить предложения
00:21:41
а еще ребята
00:21:44
Я сейчас вынашиваю свою семью, ладно, я
00:21:47
не могу сказать вам о своем возрасте, потому что я
00:21:50
вроде не так уж и много, как ты знаешь, старший
00:21:52
человек, я действительно младший человек, окей
00:21:54
но это не имеет значения, ты знаешь
00:21:56
промышленность
00:21:57
так почему я говорю тебе это, потому что я
00:22:00
я работаю над этим проектом так же, как и я
00:22:02
делаю этот урок примерно последний
00:22:03
эх, полтора месяца это очень тяжело
00:22:06
сделать за 40 часов плюс обучение или
00:22:10
40 часов макияжа, 40 часов плюс, конечно
00:22:12
это очень любезно, конечно, потому что я
00:22:15
Я уделяю много времени монтажу, мне нравится
00:22:19
сделано по плану идеально я запланировал
00:22:21
все, и я люблю делать все
00:22:23
согласно графику
00:22:26
так
00:22:28
так вот почему, ребята, в этом проекте я
00:22:30
как приват в исходном коде
00:22:33
ты прямо сейчас спрашиваешь меня, почему
00:22:35
потому что я просто хочу от тебя помощи
00:22:39
тогда я действительно смогу продолжить
00:22:40
вклад в эту программу
00:22:42
Сообщество Я могу создавать больше контента
00:22:43
потому что я тоже человек, я тоже
00:22:46
человек, я также руковожу своей семьей, так что
00:22:48
для меня очень важно любить зарабатывать
00:22:50
хотя бы что-то вроде того, как я могу вынести
00:22:53
моя семья, я не говорю тебе отдавать мне
00:22:55
мне очень нравится много денег, я нет
00:22:57
правда, просто говорю тебе это каждый месяц
00:22:59
вы тратите много денег без
00:23:01
какой-либо причине
00:23:03
или мы, вы также платите за свой колледж
00:23:05
вы платите за коучинг или
00:23:07
как то, что твои учителя платят правильно
00:23:09
поэтому, поскольку я делаю такую ​​тяжелую работу, я
00:23:12
считаю, что я имею право как минимум на 10
00:23:14
от тебя прямо за эту тяжелую работу я
00:23:18
поверь, я по крайней мере имею на это право
00:23:19
игровой доллар
00:23:21
тогда изменение цвета не слишком сильное
00:23:24
для тебя, если ты тоже из Индии, тогда
00:23:26
это самая высокая цена, например, 900 рупий, если я
00:23:28
не ошибся, так что эти ребята за 900 рупий рулят
00:23:32
очень ценю, что я делаю больше
00:23:33
контент даже у меня есть
00:23:36
план шести многонациональных проектов, который
00:23:38
на ютубе сейчас вообще нет
00:23:40
даже не на ютубе
00:23:42
Я бьюсь как с контентом udemy
00:23:44
создатели тоже окей, я так и планирую
00:23:45
подавать заявки на полную ставку с
00:23:48
алгоритм, которого сейчас не существует
00:23:50
на ютубе
00:23:51
с более продвинутыми расширенными функциями
00:23:54
очень продвинутые функции, но если я сделаю
00:23:58
очевидно, мне нужно кое-что для тебя
00:24:00
хотя бы что-то зарабатываешь прямо сейчас, ты
00:24:02
думая, что я заработал много денег
00:24:03
YouTube, но это не так, это не так
00:24:05
что YouTube не платит нам много
00:24:06
деньги
00:24:07
100 200 это нехорошо для нас
00:24:11
Насколько я
00:24:13
заработал почти восемь тысяч долларов в
00:24:16
в свой первый год фриланса я начал
00:24:20
фриланс, как несколько лет назад и сейчас
00:24:23
год я заработал почти восемь тысяч
00:24:24
долларов, что, очевидно, неплохо
00:24:26
сумма примерно за начальный год
00:24:30
так что, ух
00:24:32
этот курс, ребята, похож на видео
00:24:36
совершенно бесплатно вы получите все видео
00:24:38
на YouTube совершенно бесплатно вам не нужно
00:24:40
платить за что угодно, кроме исходного кода
00:24:42
тебе просто нужно пойти на бикодемию и ты
00:24:45
может понравится, тебе придется заплатить 9,99, окей
00:24:49
вы можете оплатить с помощью Google Pay, например
00:24:52
тогда телефон-автомат телефон-автомат, вероятно, нет
00:24:54
доступно, но Google платит кредит PayPal
00:24:57
карта дебетовая карта почти
00:24:59
все вроде как женские ворота, ты можешь
00:25:01
платите в местной валюте также в
00:25:03
расшифровка сайта в порядке
00:25:05
так что я считаю, ребята, девять долларов — это десять
00:25:07
доллар для тебя не слишком много, но это
00:25:09
для меня это слишком много, например, когда на одного 100 человек
00:25:12
куплю это, это действительно хорошо
00:25:14
для меня это оценит мою работу
00:25:17
делайте больше контента, вот и все, ребята, я
00:25:19
поверь, ты поддержишь меня, и ты это поддержишь
00:25:21
купи это и еще кое-что, если
00:25:24
вы покупаете исходный код, я имею в виду, если
00:25:26
если вы купите его у Бико Джейми, вы получите
00:25:28
узнать как несколько разделов в
00:25:30
picodemy, окей, я имею в виду, ты можешь посмотреть видео
00:25:32
раздел мудрый, как часть видео, ты
00:25:35
получите премиальную поддержку, это означает, что вы
00:25:37
также можно задавать вопросы после каждого видео
00:25:39
окей в каждом видео и ты получишь
00:25:41
исходный код и, как и вы, будете
00:25:42
премиум-член picodemy, окей
00:25:46
а также если вы его не купите, то
00:25:49
нет проблем, это значит не так, если
00:25:51
вы не покупаете этот курс
00:25:52
это не для тебя, окей, нет, это не так
00:25:54
что ты узнаешь все видео
00:25:56
то же самое, потому что каждое видео также в этом
00:25:58
YouTube тоже в порядке, но исходный код
00:26:01
будет не так, как будто ты не получишь
00:26:03
исходный код, но если вы действительно хотите
00:26:04
научись чему-нибудь, тогда я поверю типа
00:26:06
исходный код тебе вроде не нужен
00:26:08
хорошо
00:26:09
но если ты хочешь поддержать меня, ты можешь
00:26:12
купите, ладно, ребята, вот и все, ребята, я
00:26:14
не обменивать это видео со следующим
00:26:17
видео я объясню вам, как сделать любой
00:26:20
Планируйте перед разработкой программного обеспечения
00:26:21
проект, окей, я имею в виду, предположим, ты хочешь
00:26:23
построить проект для вашего клиента или для
00:26:25
ваша компания, как вы можете начать это
00:26:28
проект очень важен даже в 90-е
00:26:31
программисты, которых ты об этом не знаешь, типа
00:26:32
как начать проект, которого мы действительно не знаем
00:26:34
знаю об этом, поэтому в следующем видео я расскажу
00:26:36
объясните это поглубже, чтобы все, ребята, увидели
00:26:39
ты в следующем видео
00:26:42
хорошо, ребята, прежде чем начинать
00:26:44
полноценный проект
00:26:45
любой полнофункциональный проект, который вы получаете
00:26:47
от вашего клиента или вы получаете от
00:26:49
как ты делаешь в программном обеспечении
00:26:51
работа в девелоперской компании или ты
00:26:54
получаю проекты от твоего колледжа, так что
00:26:56
перед началом любого проекта полного стека
00:26:58
сначала нам нужно сделать по плану
00:27:02
нам нужно сломать нашу полную
00:27:04
приложение
00:27:06
был еще один общий вопрос
00:27:07
почти всех начинающих Minds Tech
00:27:09
программист, вот какую часть мне следует
00:27:12
начать сначала серверную или переднюю часть
00:27:15
самый распространенный вопрос, подходящий для каждого
00:27:18
начинающий программист
00:27:20
так что же это за ответ на самом деле?
00:27:22
прежде чем дать этот ответ, ребята, я
00:27:24
дать тебе еще одну вещь, и это
00:27:26
прежде чем думать об этом, какую часть ты
00:27:29
начнется сначала серверная часть или интерфейсная часть
00:27:31
Я говорю тебе первым
00:27:33
сломать ваше приложение сломать
00:27:36
значения вашего приложения, которые вам могут понравиться
00:27:38
открыть текстовый файл или вы можете сделать это с помощью
00:27:40
ваш график также с помощью аналогичной диаграммы, поэтому
00:27:43
э, сначала тебе нужно узнать, сколько
00:27:46
основные функции и второстепенные функции имеют
00:27:48
в вашем проекте
00:27:49
Итак, теперь перейдем к вопросу о том, что является главным
00:27:51
особенности какие второстепенные особенности основные
00:27:54
имеет значения, что является своего рода основным
00:27:56
Основные особенности
00:27:57
поэтому я привожу вам такой пример, ладно
00:28:00
этот сайт без этой платформы LMS
00:28:02
итак, здесь у нас есть аутентификация
00:28:05
система сначала правильно, так что это
00:28:07
система аутентификации является основной особенностью
00:28:09
и внутри этой системы аутентификации мы
00:28:12
нужно лайк создать аккаунт, тогда нам нужно
00:28:15
для входа у нас есть социальная аутентификация
00:28:17
затем мы используем токен обновления
00:28:20
или токен доступа, например, для создания
00:28:22
аутентификация, так что это второстепенные функции
00:28:26
это второстепенные особенности в нашем
00:28:28
часть аутентификации в порядке, поэтому сначала найдите
00:28:31
сколько на самом деле основных основных функций
00:28:33
или мои основные функции в нашем проекте
00:28:35
типа честная аутентификация, окей
00:28:38
очевидно, он доступен почти за 95
00:28:40
применение почти каждое
00:28:42
приложения имеют систему аутентификации
00:28:45
теперь переходи к следующему, что будет следующим
00:28:47
основные функции, поэтому, если вы заметили в
00:28:50
здесь
00:28:52
в нашей панели администратора, окей, немного
00:28:55
приложениям это не нужно, но я предпочитаю
00:28:57
Я лично предлагаю вам поставить лайк make on
00:28:59
функции на панели администратора для обновления
00:29:01
этот баннер, окей, это очень важно, не
00:29:04
для этой LMS это очень важно
00:29:06
электронная коммерция также похожа на то, что вы делаете на
00:29:08
приложение для электронной коммерции, так что ты
00:29:11
нравится загрузка на продукт, окей или нравится
00:29:13
ты хочешь что-то показать, тогда ты
00:29:15
можно обновить баннер, но перейдя в
00:29:19
обновлять код, это очень сложно, так что
00:29:22
очевидно, нам нужна функция для обновления
00:29:24
этот Баннер, даже не только Баннер, который мы можем
00:29:27
нам также нужны эти функции для обновления
00:29:29
этот текст этот текст тоже ок
00:29:32
так это называется основными функциями, так что
00:29:36
каковы основные особенности здесь, основные
00:29:37
особенность, так как это вроде как называется
00:29:39
макет, ок, здесь нам нужно поставить лайк, добавить
00:29:42
эти функции я имею в виду, что администратор может обновить
00:29:45
этот баннер, окей, ты это знаешь
00:29:47
приложение, то администратор может обновить это
00:29:50
Часто задаваемые вопросы на панели администратора. Администратор может
00:29:53
обновлять
00:29:55
категория курса категории, если вы
00:29:58
иди сюда курсы этой категории курсов
00:30:00
администратор может обновить его, так что вот это
00:30:03
основные функции этого макета, называемые
00:30:04
основные функции и подобные категории
00:30:06
это второстепенные функции, ладно, так что сначала
00:30:09
ребята, предположим, я открываю текстовый файл
00:30:11
за то, что объяснил тебе это, как в новом
00:30:14
текстовый документ вот и сюда
00:30:16
предположим, я ставлю 1 и я
00:30:18
писать так, как будто ты знаешь, что прежде всего
00:30:21
аутентификация в порядке
00:30:24
ребята, не пропускайте эту часть, это очень
00:30:26
важно это понять, окей, не надо
00:30:28
думаешь, что знаешь все, но это
00:30:29
нет, это действительно не так, окей, это
00:30:32
очень важно, хорошо, не пропускай эту часть
00:30:34
затем, во-вторых, после аутентификации, что
00:30:37
мы подумали о макете
00:30:39
окей, в этом макете есть кое-что незначительное
00:30:41
функции, которые мы добавим позже, но сначала
00:30:43
разобрать все основные функции
00:30:45
следующий это
00:30:47
прокрутите, это функции курса, которые у нас есть
00:30:50
курсы, правый администратор может загружать курсы
00:30:52
так что это еще одна важная особенность
00:30:56
конечно, мы можем дать это имя, тогда хорошо
00:31:00
эээ, после курса, ребята, у нас есть
00:31:03
позволь мне вернуться сюда прямо сейчас
00:31:06
у нас есть эта страница профиля, так что
00:31:07
страница профиля также включена в это
00:31:10
аутентификация, поэтому вам не нужно редактировать
00:31:12
это сейчас не какие-то важные функции
00:31:14
вернитесь в панель администратора, очевидно
00:31:17
эээ, прежде чем начинать свой проект, ребята, вы
00:31:19
сообщу вам о файле Figma или подобном
00:31:22
любой, ну, любой веб-сайт или ваш клиент
00:31:25
также дать тебе какой-нибудь план, например, если бы я
00:31:28
поделюсь с вами некоторыми своими личными
00:31:29
опыт работы с программным обеспечением
00:31:32
компания, я знаю это, окей, так что предположим
00:31:34
клиент приходит к тебе как клиент
00:31:37
займись делом, хорошо, очень хорошие дела
00:31:39
так что клиенту понравится это развивать
00:31:41
программное обеспечение для своего бизнеса, поэтому он
00:31:44
объясняет нам о своем бизнесе, например
00:31:46
эй, мы ведем этот бизнес, так что
00:31:48
мы собираемся запустить это в Интернете, и это
00:31:50
наш целевой клиент, поэтому нам нужен этот тип
00:31:52
приложения, окей, на самом деле это так
00:31:54
компания по разработке программного обеспечения
00:31:56
работы ее отрасли действительно имеют
00:31:58
работал
00:31:59
тогда мы спрашиваем клиента, хорошо, хорошо
00:32:02
так что, тогда ты просто дашь нам несколько баллов
00:32:05
наш дизайнер пользовательского интерфейса или разработчик Figma, он
00:32:08
вам понравится дизайн по шаблону
00:32:09
после этого, когда клиент спросит
00:32:12
фигма дизайн окей, как будто он просто
00:32:13
смотрю да все в порядке нет или
00:32:15
если нравится, нужны какие-либо изменения, нужны какие-либо
00:32:17
дополнительные функции, то он продает
00:32:19
Figma Designer и изготовление Figma Designer
00:32:21
это и после этого, когда у нас всё будет хорошо
00:32:24
обзор
00:32:25
хорошо, когда у нас будет хороший обзор
00:32:28
наш проект, как будто нам нужны вот эти
00:32:30
функции окей, сайт будет выглядеть
00:32:32
вот так вы начинаете проект
00:32:34
окей, до этого мы этого не делали, э-э, не делаем
00:32:36
сначала запустите любое полнофункциональное приложение
00:32:38
мы делаем пользовательский интерфейс, который нам нравится
00:32:40
какой-нибудь демо-сайт, который вы знаете, окей, типа
00:32:43
какой-нибудь другой сайт, ты можешь использовать этот
00:32:45
веб-сайт в качестве ссылки, окей
00:32:48
так что сначала, очевидно, мы поладим
00:32:50
прямо на сайте или в файле Figma, так что тогда
00:32:52
вам нужно зайти в панель администратора
00:32:54
прямо сейчас
00:32:55
и здесь
00:32:57
за то, что выделил все основные
00:32:59
функции панели администратора являются наиболее
00:33:01
самое простое, ладно, потому что в админке
00:33:03
приборная панель у нас есть все, так что это
00:33:05
очень легко узнать все основные
00:33:07
функции обратите внимание на эту панель управления, которая у нас есть
00:33:09
аналитика, очевидно, аналитика является основным
00:33:12
функции
00:33:13
так что пойдем сюда
00:33:15
добавить эту аналитику
00:33:18
окей, тогда следующий счет-фактура
00:33:22
называется заказами
00:33:24
окей, тогда это связанные платежные поручения
00:33:27
ты знаешь счета, все связано
00:33:29
в этих заказах это главное
00:33:30
функции сейчас, если вы заметили, создать курс
00:33:33
живой курс уже здесь, конечно
00:33:36
Теперь настройка означает макет
00:33:38
уже здесь
00:33:39
теперь, контролёры, это вроде как законно
00:33:42
с системой аутентификации, хорошо, так что ты
00:33:44
не нужно лайкать, добавь это сюда сейчас
00:33:47
аналитику тоже сделали и всё
00:33:49
есть только эти пять особенностей, пять основных
00:33:51
функции в этом приложении это
00:33:53
размер приложения явно не тот
00:33:55
очень большой, это вроде как называется
00:33:57
среднемасштабное приложение, окей, можно сказать
00:33:58
это своего рода средний масштаб
00:34:00
приложение в порядке
00:34:02
и еще одна важная вещь, которую я действительно
00:34:04
забыл, и это правая сторона
00:34:06
уведомление, очевидно, это важное
00:34:09
функции, потому что уведомление будет
00:34:10
всегда предположим, что мы делаем новый
00:34:13
заказ, поэтому мы добавляем его, поэтому нам нужно
00:34:15
создайте модель и для этого
00:34:17
уведомление, право, вы знаете, если ваше мнение
00:34:18
похоже на mongodb, очевидно, мы используем
00:34:20
mongodb, поэтому давайте укажем
00:34:23
это тоже уведомление
00:34:26
окей, просто нам нужен новый
00:34:28
сбор для этого не базы данных, да, так
00:34:30
это шестая часть, это основные особенности
00:34:33
теперь внутри этих основных функций у нас есть
00:34:36
много мелких функций, как я уже сказал в
00:34:38
аутентификация у нас есть регистрация
00:34:43
войдите в систему вручную, тогда мы
00:34:47
заниматься социальным искусством
00:34:49
у нас есть обновление
00:34:51
профиль
00:34:53
профиль ворот окей, тогда у нас вроде есть
00:34:57
другие другие функции, так что я, ребята, нет
00:34:59
добавляю все сюда, потому что я это сделаю
00:35:01
дать вам обзор нашего плана, хорошо, я
00:35:03
я уже дам тебе, я не представляю
00:35:05
здесь, окей
00:35:10
потому что, если я захочу добавить все функции
00:35:13
здесь, в этом курсе, я записываю я
00:35:16
записано почти
00:35:18
56 видео, окей, если я либо 56 видео
00:35:21
так что поймите, насколько это будет большим
00:35:23
поэтому я просто изо всех сил старался дать вам
00:35:26
обзор для начала любого полного стека
00:35:28
проект в порядке, потому что это очень важно
00:35:31
в нашей отрасли, если вы думаете о нашей
00:35:32
полная разработка программного обеспечения
00:35:34
развитие промышленности
00:35:35
какие люди вроде новички
00:35:38
окей, какой программист новичок они
00:35:39
подумай, эй, тогда мы начали кодить
00:35:41
да, это наша задача, но нет, если
00:35:43
ты действительно хочешь быть полным стеком
00:35:44
разработчик, вам нужно понять, как
00:35:46
масштабировать приложение
00:35:48
и вы поймете, как защитить
00:35:49
наши приложения, которые вы знаете, такие как
00:35:52
клавиатура безопасности
00:35:54
тогда, когда размер нашего приложения будет
00:35:57
идем по-крупному, тогда нам нужно добавить денег
00:36:00
техническое обслуживание, какие вещи мы являемся
00:36:02
собираюсь реализовать в этом уроке, окей
00:36:04
В следующем видео я покажу вам, что
00:36:05
это тогда, когда наше приложение
00:36:07
размер понравится больше, чем мы
00:36:09
нужно реализовать как в алгоритме на
00:36:11
система рекомендаций, иначе это будет
00:36:13
нам будет очень сложно собрать все
00:36:15
данные, это займет много времени, поэтому
00:36:18
тебе нужно это все понять
00:36:19
если ты это все понимаешь, если ты
00:36:21
можешь поиграть с этим, тогда ты полный
00:36:24
разработчик стека, ты настоящий полный
00:36:26
разработчик стека разум стек просто ударил просто
00:36:28
одна стопка в полной стопке, окей, это не так
00:36:31
полноценная разработка, да, очевидно, мы
00:36:33
используя мой, вы можете сделать полный стек, но
00:36:35
если ты действительно хочешь быть полным стеком
00:36:36
разработчик, то моего не хватит
00:36:38
ты тебе просто тебе нужно узнать больше, больше
00:36:40
все в порядке, если ты спросишь меня, типа, эй, тогда
00:36:43
кто такие новые технологии, которые мне нужно изучить
00:36:45
нет конкретного ответа на этот вопрос
00:36:46
это нормально, потому что каждый год день за днём
00:36:50
программирование каждый день обновляется, поэтому
00:36:52
тебе также нужно обновить его, тебе тоже нужно
00:36:54
обновить себя
00:36:55
как будто к вам приходит новая структура
00:36:57
нужно начать с того, что это легко, ребята, люди
00:37:00
сделать это так, чтобы мы тоже могли сделать это правильно
00:37:02
они делают для программистов вот так
00:37:04
в чем проблема, мы тоже можем начать
00:37:06
водить еще одну акцию, например, начать, если
00:37:09
ты действительно программист, тогда ты сможешь
00:37:10
сделай это, ладно, ну, из следующего видео
00:37:13
ребята
00:37:14
Я имею в виду, что из следующей части я объясню
00:37:16
тебе нравится, какие мы технологии
00:37:20
буду использовать в этом проекте, окей
00:37:21
потому что я уже объяснил типа
00:37:23
технологии очень важны каждый раз
00:37:25
нехороший человек, так что мы собираемся
00:37:28
использовать в этом приложении и почему мы
00:37:30
собираюсь использовать эти технологии, я
00:37:32
объясни в следующем видео, окей, вот и все
00:37:34
увидимся в следующем
00:37:36
окей, ребята, теперь я дам вам
00:37:39
предложить обзор, какие технологии мы используем
00:37:40
буду использовать в этой серии и не только
00:37:44
эта серия для вашего будущего проекта
00:37:47
ваш следующий полнометражный проект, который
00:37:48
технологии, которые вы должны использовать для
00:37:50
проект, я предлагаю вам свой взгляд
00:37:52
хорошо
00:37:54
поэтому прежде всего нам нужно
00:37:56
понять, сколько приложений
00:37:59
на самом деле мой я говорю о том, как
00:38:01
многие типы приложений имеют в этом
00:38:03
мир в порядке, так что в основном это программирование как
00:38:07
разработку программного обеспечения, которую мы разделяем
00:38:09
приложение в трёх частях окей три
00:38:12
часть приложений, как мы делим на
00:38:15
его самый низкий навык, другой средний
00:38:17
и еще один - высокий навык, так что
00:38:19
самый низкий навык, что такое средний навык
00:38:21
применение, что такое высокое мастерство
00:38:23
приложения, которые я привожу вам в качестве примера и
00:38:25
объяснение, окей
00:38:27
Итак, первое приложение с низким уровнем навыков
00:38:29
поэтому применение меньшего масштаба не будет
00:38:32
настолько большой
00:38:33
окей, функционала не должно быть
00:38:35
такой большой и
00:38:38
люди не будут приходить так часто, окей
00:38:41
например, если я дам тебе что-нибудь типа
00:38:44
ну, приведи пример, тогда я смогу
00:38:47
скажи что-нибудь так, как будто ты знаешь что-то из своего
00:38:50
сайт местной газеты, окей
00:38:53
в вашей стране сайт местной газеты
00:38:56
вероятно, они приходят из вашего
00:38:58
только твоя страна права, так что это любезно
00:39:01
как вы знаете, не среднего мастерства
00:39:04
приложение, вот и все, низкий навык
00:39:06
приложения в порядке, потому что их нет
00:39:07
типа так много сложностей, скажи сложность в
00:39:09
приложение также
00:39:11
вроде не так уж и критично
00:39:13
важные функции, поэтому мы можем сказать, что солнце
00:39:16
это приложение для не требующих навыков, так что
00:39:19
для приложений с низкой квалификацией
00:39:21
какой фреймворк мне подойдет Cube, если вы
00:39:25
работают с JavaScript, в порядке, большинство
00:39:27
веб-разработчик, работающий с
00:39:28
JavaScript, поэтому я бы предложил вам
00:39:30
очевидно, вы можете использовать полный Nick JS nyxjs
00:39:34
тебе идеально подходит, ладно, тебе не нужно
00:39:36
использовать как любую другую серверную структуру
00:39:38
еще и потому, что у ниндзя уже есть бэкенд
00:39:40
так что вы можете использовать следующий Чейз, и вы можете
00:39:42
построй к 2023 году, я записываю это
00:39:44
видео 2023 и я говорю примерно так
00:39:47
щас время окей щас пора
00:39:49
ну, как вы знаете, в небольших масштабах
00:39:51
приложение nexjs, очевидно, лучше
00:39:54
выбор окей
00:39:56
Итак, теперь давайте перейдем к следующему средству
00:39:59
масштабировать то, что называется медианным навыком
00:40:01
приложения для средних навыков
00:40:02
это значит, где посетители пользователей, окей, я
00:40:07
означает, что пользователь посещает эти веб-сайты и
00:40:10
провода имеют некоторые сложные особенности, некоторые
00:40:13
сложные функции и в будущем это
00:40:16
приложение может расти нормально, например
00:40:19
потому что ты знаешь, что это для меня Бико
00:40:21
можно сказать средний уровень мастерства
00:40:23
приложения, потому что у вас также может быть
00:40:25
много функций, которые я не реализовал
00:40:27
передняя часть, но все еще задняя часть
00:40:29
в нем много особенностей
00:40:30
экономика окей, кодиум тоже очень большой
00:40:32
заявок и в ближайшие шесть месяцев
00:40:35
ты поймешь, насколько это большое
00:40:37
потому что будет вкусный сайт
00:40:39
окей, еще один хороший пример — средний
00:40:43
применение навыков. Эта LMS также является
00:40:46
окей, в LMS для среднего навыка
00:40:49
приложение в основном предположим прямо сейчас
00:40:50
вы начинаете подавать заявление LDS, окей
00:40:52
на платформе LMS, очевидно, впервые
00:40:54
у тебя не так много учеников
00:40:57
есть что-то вроде
00:40:58
средние ученики, так это называется
00:41:01
применение среднего навыка, так что для среднего
00:41:04
приложение навыков, ребята, это я предлагаю
00:41:07
когда-нибудь в следующий раз, Чейз, я предлагаю как-нибудь
00:41:10
не следующий Чейз
00:41:12
ты думаешь, почему Ник Чейз
00:41:14
очевидно, хорошо, да, я признаю следующий выбор
00:41:16
очень хорошо, мне тоже нравится, но если ты
00:41:19
подумай о том, ну, предположим, ты хочешь
00:41:21
реализовать тебя, э-э, ты хочешь реализовать
00:41:23
например, некоторые важные функции, которые вы хотите
00:41:25
поменяйте свой сервер на лайк Далее
00:41:27
Уровень так, как наши эти приложения любят
00:41:30
если мы добавим сюда мультивендер
00:41:33
система на будущее в этой LMS, если мы сможем
00:41:36
добавьте функции живых занятий, тогда вы
00:41:38
узнать о других функциях LMS — это очень большая
00:41:41
платформа, если ты заметишь про udemy ты
00:41:44
не могу сказать, что udm — это средний навык
00:41:46
приложения udm очень большие, вот это
00:41:48
это также LMS, поэтому они очень большие, поэтому
00:41:52
очевидно для такого типа приложений
00:41:54
Я никогда не предлагаю следующий Чейз для
00:41:56
минимум поддержки, но для начала, ок
00:41:58
следующий год хорош, но для серверной части я
00:42:00
никогда не предлагай следующего Чейза, окей, я знаю
00:42:02
Нексус быстрый, [ __ ] хороши.
00:42:05
но я не предлагаю гоняться за змеей, даже я
00:42:08
тоже не предлагай node.js, окей, да, ты
00:42:11
можно использовать node.js, но если ваши приложения
00:42:14
например, если у тебя есть план
00:42:16
приложения станут похожими на вас больше
00:42:17
тогда планируем сделать это как udemy
00:42:19
node.js также не подходит для вашего
00:42:21
приложение
00:42:22
вам нужно перейти к инициации
00:42:24
JavaScript как язык программирования, если
00:42:27
вы хотите использовать, тогда вы можете попробовать Nest.js
00:42:30
Nest в порядке, который является серверной платформой
00:42:33
очень популярен, и в этом случае вы
00:42:35
узнать, как много готовых вещей или
00:42:37
если ты хочешь изменить свою программу
00:42:40
языку нравится Python, тогда я бы
00:42:42
предлагаю вам Django, хорошо для бэкэнда
00:42:44
часть для крупномасштабных приложений это
00:42:47
очень масштабируем, даже без индекса.
00:42:50
масштабируемо, но я не предлагаю это, окей
00:42:52
потому что лично мне не нравится подобное
00:42:55
ты знаешь, я не знаю, почему я не знаю
00:42:57
как для крупномасштабных приложений, окей, я
00:42:59
чувствую, что это сложно, сложность не в том
00:43:01
главное, главное, как ты
00:43:03
знать
00:43:05
стиль написания кода окей, тогда много
00:43:09
другие вещи, которые я тоже попробую в следующий раз. Чейз ин
00:43:11
у меня есть несколько личных проектов, но да, это так
00:43:13
достаточно хорошо для среднего масштаба или чего-то подобного
00:43:16
небольшой масштаб, но это явно не хорошо
00:43:17
за большое мастерство, когда хочешь
00:43:19
реализовать и алгоритм
00:43:21
это явно нехорошо, окей
00:43:23
тогда даже node.js тоже не годится
00:43:25
очевидно, что node.js тоже плохой
00:43:27
выбор на этот раз
00:43:29
нам нужно использовать это время в следующий раз, когда Чейз или
00:43:32
как в Django, это прямо сейчас включено
00:43:35
популярный на Маркете, нормально, как по мне
00:43:37
типа это лучший выбор, окей
00:43:40
так что это для крупномасштабных приложений
00:43:42
Я также объяснил большой масштаб в
00:43:43
средний масштаб еще и потому, что, как и большой
00:43:45
масштаб, который нам нужен, чтобы использовать следующий JS или что-то подобное
00:43:47
Django, тогда для внешнего интерфейса вы можете
00:43:49
используйте следующий, просто нет проблем
00:43:50
и поскольку Neches предоставляет много
00:43:53
функции, например, выполнение ACR для
00:43:55
приложение
00:43:56
затем каждый тип также хочет перейти на сервер
00:43:58
боковой рендеринг, но поскольку вы не используете
00:44:00
необходимость в бэкэнде, поэтому вам не нужно
00:44:02
это, но ниши, очевидно, хороший выбор
00:44:05
для внешнего интерфейса, очевидно, потому что вы будете
00:44:08
получи много функций, окей
00:44:11
вот и все, ребята, теперь давайте перейдем к главному
00:44:14
укажите, какие технологии мы собираемся использовать
00:44:16
используйте в этом проекте тогда
00:44:18
мы собираемся использовать
00:44:20
Далее идет передняя часть
00:44:22
node.js для серверной части Regis или
00:44:25
хранит наличные
00:44:27
и запрос rtk вместо Redux или
00:44:32
Redux-запрос, извините, не 3x-запрос Redux
00:44:35
инструментарий, который мы собираемся использовать Arctic Equity
00:44:37
что такое запрос статьи, я объясняю
00:44:39
через некоторое время окей
00:44:41
так что, тогда чужой CSS и тому подобное
00:44:44
стиль
00:44:46
и я сделал это в сообщении «ОК» в сообщении сообщества
00:44:51
на моем канале YouTube, который я редактирую, например
00:44:54
EGS да, я сейчас использую ejs в
00:44:57
этот проект, так что у EJ по сути один
00:44:59
типа, ну, вы знаете, за добавление Dynamic
00:45:03
почта ок, например, для отправки динамической почты
00:45:06
э-э, почтовый шаблон, мы просто используем EGS
00:45:09
за это ладно, это не так, как у нас, эээ
00:45:12
он не работает ни для каких других функций
00:45:14
мы создаем шаблон EGS, шаблон EJS
00:45:17
и мы отправляем шаблон нашему
00:45:18
пользователей за такие динамические функции, которые
00:45:21
это
00:45:22
Итак, теперь давайте перейдем к некоторым важным
00:45:25
функции в наших этих приложениях в порядке
00:45:26
вам нужно понять, Мастер, это так
00:45:28
что такое обслуживание кэша, когда кэш
00:45:31
поддерживает, это важно, хорошо, почему мы
00:45:34
используя радиус
00:45:35
тогда еще другое дело, что это когда
00:45:39
тебе нужно делать наличные, как когда кэш
00:45:42
техническое обслуживание очень важно, а также
00:45:44
вот одну вещь, которую я забыл, это
00:45:46
Arctic Equity, почему мы используем, почему мы
00:45:48
не используют инструментарий Redux, почему
00:45:50
запрос билетов на основе инструментария Redux, в порядке
00:45:53
Итак, давайте начнем с первого пункта, почему мы
00:45:56
Вот почему важно поддерживать кеш
00:45:59
хорошо
00:46:00
предположим, прямо сейчас я собираюсь
00:46:02
непопулярное название сайта — Netflix
00:46:06
хорошо
00:46:08
так что Netflix Бангладеш я не знаю, смогу ли
00:46:11
зайти на этот сайт или нет
00:46:12
нажмите начать
00:46:15
окей, я не могу пойти сюда, мне нужно создать
00:46:17
аккаунт, но у меня его нет, окей
00:46:19
круто, ребята
00:46:22
и в основном, если вы думаете о чем-то вроде
00:46:25
у вас есть
00:46:26
много данных на вашем сайте, окей, да
00:46:29
теперь мы можем пропустить, как будто ты знаешь наличные
00:46:33
основные преимущества, окей, теперь эти приложения
00:46:34
если размер не такой уж большой
00:46:36
Я имею в виду, если тебе не нравится
00:46:37
большую аудиторию, то вы можете пропустить это, но
00:46:40
Я предлагаю тебе сделать это, окей, так что
00:46:43
наличные деньги сохраняют значение, предположим
00:46:46
давайте вернемся к подробностям этого курса
00:46:49
в этом курсе подробности одновременно
00:46:52
10 000 человек подают заявку одновременно
00:46:55
тот же API
00:46:57
тогда это будет очень тяжело для наших
00:47:00
сервер для ответа 10 000 человек
00:47:02
за один раз, что тогда произойдет
00:47:04
это снизит скорость нашего сайта
00:47:07
это уменьшит наш веб-сайт является сервером
00:47:09
скорость правильная, очевидно, что сервер получит
00:47:12
большое давление
00:47:14
так что для этой проблемы
00:47:17
мы кэшируем данные, что это значит
00:47:20
кэширование, поэтому существует два типа наличных денег
00:47:22
основные достижения хорошо, есть два типа
00:47:24
наличные, один — внешний, наличные, другой
00:47:26
это внутренний кеш
00:47:28
значения, предположим, у нас есть 20 курсов, окей
00:47:31
так что очевидно 20 курс не посещается
00:47:33
около 10 000, очевидно, как некоторые популярные
00:47:35
курсы, которые посещает пользователь больше
00:47:39
студентов больше, поэтому те курсы, которые мы можем
00:47:43
добавьте это в нашу базу данных радиуса
00:47:45
сокращение также находится в базе данных, такой как mongodb
00:47:48
окей, но это бессерверное и радиус такой же
00:47:51
в основном мы используем для кеширования, поэтому
00:47:54
что мы делаем, когда смотрим
00:47:56
типа да, эти курсы нравятся людям
00:47:58
очень много людей ищут
00:48:01
очень, но добавлю, что ты знаешь
00:48:03
кэш, поэтому, когда 10 000 человек запрашивают
00:48:05
это
00:48:06
тогда наша база данных, я имею в виду наш сервер
00:48:09
не нужно заходить в базу данных или
00:48:12
сервер может перейти в кэш
00:48:14
окей и Casual, полностью отправь это в
00:48:16
в то же время, чтобы наш сервер не получил
00:48:19
давление в то время
00:48:20
хорошо, мы можем сохранить эскиз для этого
00:48:24
тип функций, например, если вы думаете о
00:48:25
Netflix в том же фильме Много
00:48:28
люди исследуют, очевидно, все в порядке
00:48:30
Netflix, вероятно, много фильмов
00:48:32
вроде 20 000 вечеринок, я правда не знаю
00:48:34
точная сумма, окей, это как у меня
00:48:36
идея, 50 000 фильмов у них наверняка есть
00:48:38
вроде больше, я не знаю, правда, так
00:48:41
когда в этих 50 000 явно не все
00:48:44
фильмы, которые люди так часто ищут
00:48:46
да, некоторые фильмы популярны, некоторые
00:48:48
фильмы не популярны, так чьи фильмы
00:48:50
пользуется популярностью, они добавляют его к себе
00:48:53
кэш
00:48:54
поэтому, когда люди ищут людей
00:48:57
дать такой ответ получить это
00:48:59
ответ очень быстрый, а сервер нет
00:49:02
как будто давление
00:49:04
вот почему они также используют наличные
00:49:07
даже не только Netflix почти как и все
00:49:09
популярный сайт, такой как Instagram или что-то вроде
00:49:11
ты знаешь какие-нибудь приложения
00:49:14
они когда-нибудь используют некоторые кэшированные данные
00:49:16
окей, даже в нашей следующей погоне тоже
00:49:20
если я не запускаю SJS, он также кэшируется
00:49:22
данные в порядке, если вы проверите здесь
00:49:26
да, они тоже кэшируют, да
00:49:32
что это за ошибка, окей
00:49:35
нет проблем
00:49:36
нет, ребята, в принципе
00:49:39
так это называется кассовое обслуживание, я
00:49:41
я пойму это, хорошо, если ты не понимаешь
00:49:43
пойми, тогда можешь спросить у них
00:49:45
комментарий я могу написать тебе написать это для тебя
00:49:48
окей, теперь давайте перейдем к следующему пункту
00:49:50
почему вы используете запрос статьи, а не
00:49:53
набор инструментов Redux
00:49:55
поэтому я привожу вам пример: это
00:49:58
общая сумма связана с видом наличных денег, поэтому
00:50:00
вот почему я привожу этот пример
00:50:02
второй раз, тогда ты поймешь
00:50:03
снова наличные с хорошим окей, предположим, что я готов
00:50:07
удалив это, я такой: подожди, подожди, я
00:50:10
даём на перезагрузку и это наше
00:50:11
Сетевое приложение доступно на этом веб-сайте
00:50:14
так что просто проверь это
00:50:17
мы отправляем запрос, окей, нет
00:50:20
я имею в виду, это говорит о просьбе
00:50:22
меняется по запросу rtk, так что это
00:50:25
я прошу, окей, это значит, что это отправка
00:50:27
запрос к API слэш-видео на слэш-мне
00:50:29
теперь, ребята
00:50:32
что такое пройти курсы, окей, это тоже
00:50:34
отправка запроса, просто удалите его сейчас
00:50:36
«вернись» — это компонент курсов
00:50:40
не это
00:50:42
ворота, все курсы, окей, только не этот
00:50:45
предыдущая ну предыдущая или не эта
00:50:47
не отправлять повторный запрос, если мы снова
00:50:50
вернись на домашнюю страницу, запомни это, это
00:50:53
не отправляю ни одного нового запроса, так как
00:50:55
работаю, если подумаешь, если заметишь
00:50:58
любой запрос об Арктике, а не статьи, если вы
00:51:01
подумайте, заметили ли вы какой-нибудь инструментарий Redux
00:51:03
проект в порядке, просто делаю спецификации и проверяю
00:51:06
это каждый раз, когда ты собираешься на свой
00:51:08
URL-адрес Канады, он всегда отправляет запрос
00:51:11
запросить запрос ок, но в статье
00:51:14
запрос, почему он не отправляет запрос
00:51:16
потому что эти данные прямо сейчас
00:51:18
кэшируется в запросе rtk
00:51:20
хорошо
00:51:22
когда истечет срок действия данных
00:51:25
кэшируется или когда, как мы дадим при перезагрузке
00:51:27
тогда он будет повторно загружен, иначе это будет
00:51:29
не повторяй загрузку, окей, это что-то вроде
00:51:33
главная мощная вещь арктического равенства и
00:51:36
если мы используем rtk Query, нам не нужно
00:51:38
делать много нестандартных вещей
00:51:41
код очень короткий очень простой очень простой
00:51:43
для реализации мы можем легко обновить наши
00:51:46
код также
00:51:48
и я думаю, что запрос - это просто круто, я просто
00:51:50
хочу сказать это онлайн, это запросы
00:51:53
очень здорово, если ты научишься в этом проекте
00:51:56
хорошо, если вы используете запрос статьи в этом
00:51:58
проект, очевидно, вы собираетесь использовать
00:51:59
так
00:52:00
ты тоже начнешь любить искусственное
00:52:02
мне нравится, окей, я возьму это, правда
00:52:05
потрясающий
00:52:06
вот и все, ребята, и я снова глубоко
00:52:09
объяснить вам о запросе статьи в
00:52:11
курсы и интерфейсная часть, поэтому я
00:52:13
надеюсь, тебе это понравится, вот и все
00:52:15
ребята, я делаю это не так, как вы знаете
00:52:16
эта часть называется теоретической частью, так что
00:52:19
Я не делаю эту теорию частью типа
00:52:21
более большой, потому что некоторые люди действительно
00:52:23
мне это не нравится, а также дай мне знать
00:52:25
похожи на эту часть или нет, если нет
00:52:27
типа тогда я не буду добавлять этот лайк из
00:52:29
следующий урок, но извините
00:52:32
теория тоже иногда важна, окей
00:52:35
вроде того, что я объяснил, их много
00:52:37
программисты до сих пор об этом не знают
00:52:39
как то, что называется Кэш, поддерживает, как
00:52:41
эээ, как оптимизировать одно приложение
00:52:44
скорость, тогда мне нравятся такие вещи
00:52:47
программистов не знают, так что это очень
00:52:49
важно знать, потому что мы собираемся
00:52:51
мы собираемся стать инженером-программистом
00:52:53
быть Full Stack разработчиком, так что это очень
00:52:55
важное право
00:52:56
вот и все, ребята, так что насчет следующего видео
00:52:58
Я приведу вам пример нашего
00:53:00
обзор нашего редактора кода, окей, какой
00:53:02
редактор кода, я собираюсь использовать его
00:53:04
серии и вы тогда мы начнем
00:53:06
цитата окей, вот и все, увидимся на
00:53:09
следующий
00:53:10
поэтому, прежде чем приступить к кодированию, я
00:53:13
собираюсь дать вам обзор моего кода
00:53:15
редактор, который мы, э-э, используем в этом
00:53:18
полная серия
00:53:20
поэтому я сейчас использую Visual Studio
00:53:22
код, который является самым популярным кодом
00:53:24
редактор прямо сейчас во всем мире
00:53:26
поэтому для установки этого редактора кода вам
00:53:27
просто нужно зайти на этот сайт
00:53:32
code.visualstudio.com, окей, вот это
00:53:36
затем срежь загрузку, окей, если ты тоже
00:53:39
ищите так: V — это код, затем это
00:53:43
также подойдет первый сайт, так что
00:53:46
эээ, сейчас я использую тест для Mac, так что
00:53:49
вот почему это показано здесь скачать
00:53:51
Mac универсальный, но если вы используете
00:53:53
Windows и Linux, то, вероятно, это
00:53:55
здесь показано, как скачать Mac, извините
00:53:57
Windows или Linux Universal, окей
00:54:00
просто нажмите на это и скачайте, все в порядке
00:54:03
так что я надеюсь, ребята, вы знаете, как скачать
00:54:05
программное обеспечение очень простая вещь, а потом
00:54:08
скачать, просто установить это программное обеспечение
00:54:11
ОК, после того, как я установлю этот код против
00:54:13
будет автоматически открыт вот так
00:54:15
окей, но тема, очевидно, будет
00:54:18
не похоже, я использую здесь новую тему
00:54:20
тогда вам нужно нажать на этот значок
00:54:22
значок расширения окей, так что прямо сейчас я
00:54:26
собираюсь показать тебе, какой я добавочный номер
00:54:28
использую в настоящее время в моем коде vs, хорошо, что
00:54:31
вам важно установить
00:54:34
поэтому в первую очередь я использую Firefly
00:54:36
Про эту тему я правильно использую
00:54:39
теперь в моем коде цифровой студии
00:54:41
тогда во-вторых тебе нужна эта консоль
00:54:43
ниндзя, так что же такое эти двое?
00:54:45
когда мы напишем лог консоли, тогда
00:54:48
мы можем проверить это из нашей Visual Studio
00:54:51
код, нам не нужно заходить в браузер
00:54:53
и мы собираемся избавиться от этого, сделав
00:54:55
осмотр, окей, все, тогда следующий
00:54:59
третий - es7, который самый
00:55:01
важное, э-э, расширение для этой серии
00:55:04
хорошо, если ты не работаешь со своим
00:55:07
GX Redux или реагировать на родной код или машинописный текст
00:55:10
окей, следующий JS, тогда тебе нужно сделать
00:55:12
в этом расширении вы найдете много
00:55:14
ярлык, хорошо, тогда после него я использую
00:55:17
Восточная ссылка, это для того, чтобы узнать тебя
00:55:21
знаю, что это за синтаксическая проблема
00:55:22
окей, если у нас возникнут проблемы с синтаксисом в нашем
00:55:24
код, тогда он связан, скажет ли тебе Кайла
00:55:27
есть эта проблема в вашем коде, пожалуйста
00:55:28
измените это, окей, тогда я уже
00:55:31
объяснил вам, что это за Firefly Pro
00:55:34
окей, это всего лишь моя координаторская тема
00:55:36
затем gitgraph, чтобы вам не нужно было целиться
00:55:39
тебе не нужно устанавливать это, окей, это
00:55:41
это для GitHub, тогда живой сервер, да, это
00:55:45
тот, который вы также можете установить в середине ролика
00:55:46
изображение в порядке, так что это в основном предоставление
00:55:49
нам, когда мы будем использовать, когда мы будем
00:55:51
запустите код внешнего интерфейса, тогда мы сможем использовать
00:55:54
нравится ярлык с использованием этого изображения
00:55:56
тогда вы также можете установить этот путь
00:55:58
разведка, что это вам дает
00:56:01
это просто, если ты напишешь в
00:56:03
неправильный путь, тогда путь к смыслу будет
00:56:05
покажу тебе что-то вроде знака ставки, окей и
00:56:08
это подскажет вам правильный путь
00:56:11
окей, любой файл, поэтому ты тоже можешь
00:56:14
установи это это очень хорошо
00:56:16
интеллект пути расширения
00:56:18
затем следующий, который тоже очень
00:56:19
важно, это разделено здесь для э-э
00:56:22
отформатируйте наш код, а Prisma — нет.
00:56:25
сделано в этой серии
00:56:27
очевидно, это важно K1 CSS
00:56:30
нам это нужно для кривой внешнего интерфейса
00:56:32
окей, CSS Tailwind просто увеличивается
00:56:34
установи это расширение, окей, переходи
00:56:37
правая линия, мы можем, мы можем пропустить это
00:56:40
потому что я буду использовать Postman, окей, это так
00:56:43
своего рода аналог Почтальона Венгрии
00:56:45
клиент
00:56:47
окей, прямо сейчас ты тоже можешь это пропустить
00:56:49
два плюс два расширения, и что я, эээ
00:56:53
сказал, что тебе нравится то, что нужно установить
00:56:55
тогда вы сможете установить это и даже вы
00:56:57
также можно установить все расширения, если
00:56:59
ты хочешь, окей
00:57:01
вот и все, ребята, так что в следующей части, эээ
00:57:05
мы сразу перейдем к кодированию, окей
00:57:07
мы начнем с кода, который мы настроим
00:57:09
внутренний сервер, затем мы начнем
00:57:11
код в порядке, вот и все, увидимся на
00:57:13
следующая часть
00:57:15
так что прямо сейчас я просто открываю свой искатель
00:57:18
так что на самом деле вам тоже нужно открыть это
00:57:19
папка, в которой вы хотите создать
00:57:22
структура проекта в порядке, так что для меня
00:57:25
Я хочу создать проект в этом
00:57:26
папка документов, поэтому я просто
00:57:28
пришел сюда окей сюда я нажимаю я
00:57:31
нажимаю на новую папку, окей, и я
00:57:33
создать новое имя папки будет эээ
00:57:36
LMS, затем YouTube, да
00:57:40
затем я открываю эту папку в своем
00:57:43
код визуальной студии
00:57:45
большой
00:57:46
тогда отсюда
00:57:48
Я открываю свой терминал, нажав
00:57:50
Ctrl и обратное касание, ок, или вы также можете
00:57:54
открой его отсюда, так что
00:57:56
тогда справа нам нужен сервер
00:58:00
извините, нам нужно имя папки будет
00:58:01
сервер
00:58:02
Итак, это папка нашего сервера и здесь
00:58:04
прямо сейчас нам нужно перейти к Первому нашему
00:58:07
папка сервера, так что сервер CG, да
00:58:14
модули в порядке, поэтому npm init затем упаковывает
00:58:18
имя ничего не значит сервер
00:58:21
версия описание версии по умолчанию
00:58:24
прямо как эта пустая точка входа, это
00:58:26
будет наш server.js
00:58:29
окей, не index.js, просто ничего не комментируй
00:58:32
git-репозиторий, ничего, ключевые слова, ничего
00:58:34
автор, я пишу свое имя, ты можешь написать
00:58:35
Ваше имя
00:58:37
и введите и введите да и введите это
00:58:41
поэтому мы создали здесь package.json
00:58:44
отлично, так что теперь давайте установим некоторые
00:58:48
зависимости и что нам нужно для работы
00:58:49
с в этом проекте
00:58:52
так что зависимости
00:58:54
[Музыка]
00:58:56
просто введите PMI, затем Big Crypt
00:59:02
Джс
00:59:06
печенье Персер
00:59:09
курс
00:59:12
точка в v
00:59:16
Выражать
00:59:18
тогда для подключения радиуса, когда я
00:59:20
выпускать
00:59:21
тогда нам нужен наш веб-токен Json
00:59:25
затем монго
00:59:28
и
00:59:29
Узел TS K, потому что мы собираемся использовать
00:59:32
машинописный текст, окей, вот почему
00:59:34
тогда для машинописного текста нам действительно нужно
00:59:38
также, э-э, импортируйте версию типа типа
00:59:41
окей, вроде типы обновлены, типы слэш
00:59:45
большая группа
00:59:46
Джс
00:59:48
окей, вот так и на свидании
00:59:52
типы косой черты
00:59:56
Cookie Burster то же самое добавить редактировать
01:00:01
введите, затем косая черта
01:00:04
курс
01:00:06
то же самое для экспресса
01:00:15
да, ребята, все готово, все написано готово
01:00:17
прямо сейчас просто нажмите Enter, это очевидно
01:00:20
это займет некоторое время
01:00:21
нам нужно подождать этого
01:00:25
да, установка прошла идеально, так что теперь
01:00:29
просто очисти это
01:00:31
и да, здесь все в порядке, так что
01:00:34
справа солнце находится наверху как раз
01:00:36
нажмите «Создать новое имя файла», будет приложение
01:00:38
точка да
01:00:40
извините за уведомление на телефоне
01:00:45
окей, сначала нам нужно импортировать
01:00:47
наш
01:00:48
Экспресс, так что импортируйте Экспресс
01:00:52
из экспресса
01:00:54
затем экспортируйте
01:00:57
константа F равна Express и вызову
01:01:01
это вот так, окей, на этом всё
01:01:03
все отлично, теперь создайте новое имя файла
01:01:05
будет сервер
01:01:07
точка ТС
01:01:11
так что да, вот и все
01:01:13
здесь нам нужно импортировать это приложение, чтобы
01:01:18
импортировать приложение
01:01:20
из нашего приложения, приложение с точкой, окей, сейчас
01:01:24
мы должны
01:01:25
создать наш сервер
01:01:29
Хорошо, итак
01:01:33
сначала нам нужно создать точку в Вине
01:01:35
здесь, в корневом каталоге, сейчас полностью
01:01:38
нам нужен наш порт, который составляет восемь тысяч
01:01:41
так что теперь иди сюда и прямо сюда, типа
01:01:44
это требует
01:01:48
точка EnV
01:01:51
затем Дот
01:01:53
конфигурация
01:01:57
идеально, теперь мы можем создать наш сервер
01:02:00
так просто мы можем написать здесь, на консоли
01:02:03
бревно
01:02:04
извините, не консольное приложение журнала. Dot Listen
01:02:11
затем
01:02:13
Портируйте, так что это будет процесс
01:02:17
Точка
01:02:18
англ точка
01:02:21
порт
01:02:22
снова вот так
01:02:25
и теперь можно писать логи консоли
01:02:27
нравиться
01:02:29
сервер
01:02:32
связано с
01:02:36
порт
01:02:41
процесс dot EnV dot Порт идеален
01:02:45
это
01:02:46
тогда здесь
01:02:48
на данный момент все в порядке, так что просто сохрани
01:02:51
это и теперь, если вы отметите точку
01:02:55
извините, это не DOT, нам нужно вернуться
01:02:56
в package.json нам нужно добавить
01:02:58
сценарий для проверки, окей, ну типа
01:03:01
здесь мы просто добавим прямо сейчас, если для
01:03:04
проверяю, все ли в порядке, и команда будет
01:03:08
не похоже на JavaScript, окей
01:03:10
это новая новая команда, например e, тогда
01:03:14
узел
01:03:16
давай тогда мы будем использовать этот респаун
01:03:23
а потом транс
01:03:27
файл
01:03:30
только
01:03:32
серверная точка, да, идеально
01:03:35
так что теперь, если мы попытаемся запустить это, набрав
01:03:37
npm запустить, если
01:03:40
тогда не наш
01:03:42
окей, адрес 8000 уже используется
01:03:45
позвольте мне проверить, возможно, я запускаю это где-нибудь
01:03:49
окей, давай попробуем еще раз
01:03:52
очевидно, это должно сработать
01:03:55
так
01:03:57
да, это работает, сервер подключен
01:03:59
с портом 8000 идеально, поэтому наш сервер
01:04:01
соединение установлено прямо сейчас, окей и так далее
01:04:05
следующая следующая часть, э-э, следующее видео, где
01:04:07
мы подключим базу данных, окей, база данных
01:04:10
тогда, типа, mongodb исправит, мы исправим
01:04:14
подключите mongodb, тогда мы тоже
01:04:15
соединить радиус с этим проектом
01:04:17
окей, давайте посмотрим на эксперта
01:04:23
окей, ребята, прежде чем подключать нашу базу данных
01:04:26
и уменьшить нам нужно что-то изменить
01:04:28
в нашем app.ts не нужно будет менять
01:04:30
нужно добавить что-то в наш app.ts, чтобы
01:04:33
в основном здесь сначала
01:04:35
нам нужно импортировать некоторые зависимости, например
01:04:38
импортируйте наш
01:04:41
курс
01:04:43
из нашего курса вот так, то нам нужно
01:04:46
импортировать наш парсер файлов cookie
01:04:50
от нашего куки-персонажа
01:04:53
и это на данный момент, окей, это
01:04:56
о да, этого достаточно сейчас, так что сейчас
01:04:59
нам нужно привести наше тело в порядок, так что
01:05:01
что это за тело, я объясню
01:05:02
все, не волнуйся, так что тело человека
01:05:05
будет просто так, но в этом
01:05:08
express.json нам нужно добавить новый
01:05:11
свойство, имя которого будет ограничено, ок
01:05:13
так что предел такой, будто мы можем добавить что угодно
01:05:16
вот так 50 МБ окей
01:05:19
и здесь, по сути, нам нужен еще один
01:05:22
вторая скобка
01:05:23
потому что это собственность, вот почему да
01:05:26
и после этого, по сути, это наш
01:05:29
давление тела, окей, это предел
01:05:31
данные о процентах тела, окей, это
01:05:33
важно для использования энергии облака, окей
01:05:35
вот почему так можно сказать
01:05:38
лимит, тогда прямо сейчас нам нужен наш файл cookie
01:05:41
парсер, так что, по сути, это человек с печеньем
01:05:42
в основном, когда, ну, предположим, мы отправляем
01:05:45
данные, которые мы отправляем куки с нашего
01:05:47
интерфейс, окей, мы пытаемся добавить
01:05:49
что-то во внешних файлах cookie из
01:05:51
наш внутренний сервер, хорошо, если мы не будем использовать
01:05:53
cookie Порт что-то это действительно
01:05:54
с этим не работает, поэтому нам нужно
01:05:56
используйте эту зависимость в первую очередь от файлов cookie, окей
01:05:57
вот так, хорошо, теперь нам нужно использовать курс
01:06:01
что это за курс, так что в основном это
01:06:03
значение курса
01:06:05
позвольте мне написать это здесь, перекрестное происхождение
01:06:09
совместное использование ресурсов это полная форма
01:06:11
конечно, и что, конечно, так делать
01:06:13
предположим, что мы создаем этот API
01:06:17
и мы разрабатываем его только для наших
01:06:19
с сайтом все в порядке, поэтому мы не добавляем курс
01:06:21
тогда что произойдет, если кто-нибудь попытается
01:06:23
добавьте это, если кто-нибудь попытается ударить по этому нашему
01:06:27
API, хорошо, предположим, из любого другого URL-адреса из
01:06:30
любой другой сервер, тогда они смогут поразить наш
01:06:32
сервер, потому что у нас нет кодов
01:06:34
но если мы добавим курс в этот курс, мы
01:06:38
можем добавить, мы можем добавить такое свойство, как
01:06:40
откуда мы можем, мы можем попасть в это
01:06:44
API, поэтому в этом источнике мы добавим наш
01:06:46
ссылку на сайт только в этом источнике мы будем
01:06:49
добавьте просто наш сайт и поставьте лайк
01:06:51
щас тоже добавим происхождение
01:06:53
как в этом локальном хосте 3000, ок, так что из
01:06:57
только localhost 3000 и с вашего
01:06:59
веб-сайт, мы можем получить доступ к этому API в противном случае
01:07:02
наш API вернет информацию об ошибках курса
01:07:05
окей, если кто-нибудь попытается получить доступ к нашему API
01:07:08
тогда они увидят, они увидят
01:07:10
вижу ошибку, окей
01:07:12
поэтому очевидно, что это лучшая практика, это
01:07:14
защищенная часть нашего приложения, поэтому
01:07:16
поэтому я добавляю это сюда
01:07:18
в основном нам нужно сказать происхождение цитаты
01:07:20
окей, я уже показывал тебе это, да и
01:07:23
здесь в основном
01:07:25
мы можем добавить э-э из нашей DOT Envy, так почему
01:07:28
в этой точке завидуем, если добавим в нашу точку
01:07:31
Зависть, поэтому мы развернем этот веб-сайт на
01:07:33
как виртуальный, окей, так что из Бразилии в нашем
01:07:36
переменную среды, мы можем легко
01:07:39
измените его из нашей информационной переменной
01:07:40
так что это тоже изменится отсюда, так что
01:07:42
поэтому вам не нужно менять наши
01:07:44
код, поэтому мы добавляем это, эээ
01:07:47
происхождение в нашей DOT EnV, окей, я здесь
01:07:50
создание имени переменной является источником
01:07:53
и это редактирование, потому что я хочу
01:07:55
добавить сюда несколько веб-сайтов несколько
01:07:57
значения веб-сайта, такие как http
01:08:00
косая черта, косая черта
01:08:03
локальный хост
01:08:06
3000 с этого URL, если кто-нибудь запросит
01:08:10
затем с этого URL-адреса, если кто-нибудь запросит
01:08:12
тогда это не покажет никаких ошибок
01:08:14
заголовок курса, хорошо, так что для тестирования
01:08:16
очевидно, важно действовать сейчас, я
01:08:20
я приду сюда и сначала нам нужно
01:08:22
импортируйте нашу DOT в Win здесь так просто, что мы
01:08:26
можно сказать
01:08:27
требует
01:08:32
точка EnV
01:08:36
и
01:08:41
нравится эта точечная конфигурация
01:08:44
идеальный
01:08:45
тогда просто вот так мы можем сказать
01:08:48
потому что у нас это уже подключено
01:08:52
окей, поэтому в этом происхождении мы
01:08:54
нужно сказать процесс
01:08:57
точка EnV
01:09:01
расставить точки над нашим происхождением
01:09:03
вот так теперь мы можем
01:09:06
закончить нашу функцию
01:09:11
да, круто, так что после курса мы в основном
01:09:15
нуждаться
01:09:17
нам нужно добавить еще один простой комментарий
01:09:20
что будет похоже на тестирование нашего API
01:09:22
значит мы можем
01:09:24
дать комментарий, например, вставить root или или
01:09:27
как целовать API, не тестируя root
01:09:30
тогда здесь мы можем сказать app.get, тогда
01:09:36
этот URL будет похож на простой тест, окей
01:09:39
мы можем написать это, ты можешь написать что угодно
01:09:41
здесь, если мы прямо сейчас перейдем по этому URL
01:09:43
тогда мы сможем увидеть предварительный просмотр нашего API
01:09:46
окей, лайк в ответ, так что просто нам нужно
01:09:49
например, ответ на запрос трех параметров
01:09:51
и затем, но в машинописном тексте мы не можем
01:09:54
напишите эти типы параметров, это
01:09:56
не исключаю разделения поставок, как я уже сказал
01:10:00
вы, что в машинописном тексте нам нужно определить
01:10:02
набери окей, поэтому запрос тебе нужен
01:10:05
чтобы определить тип, и это похоже на наш
01:10:06
запросите, поэтому, очевидно, импортируйте его из нашего
01:10:10
Выразите, тогда ответ такой и
01:10:15
здесь, ребята, мне ничего не нужно, мне это
01:10:17
второй пилот делает забавное предложение, окей
01:10:20
это не так аккуратно, ладно, так что позволь мне
01:10:22
сделай что-нибудь одно, да, теперь мы можем начать
01:10:28
и здесь закончи это, да, так что гоночная точка
01:10:31
статус 200 точек Json
01:10:36
и наш успех
01:10:39
истинный
01:10:41
и одно сообщение
01:10:44
нравиться
01:10:46
API работает нормально, вот так что угодно
01:10:48
мы можем написать здесь
01:10:50
окей, я забыл это импортировать, поэтому
01:10:52
это все равно, что выдать ошибку, ладно, так что давай
01:10:54
импортируйте это сейчас, заметьте, все это немного
01:10:56
действительно ушел
01:10:57
так что да, импорт выполнен так просто, что вы можете
01:11:00
дайте формат окей просто да смотрю
01:11:02
хороший
01:11:03
теперь о корнях неизвестного, ладно, предположим, если
01:11:05
кто-то пытается поставить лайк, пишет неизвестно
01:11:08
маршруты, то это приведет к ошибкам, поэтому для
01:11:11
поэтому нам нужно написать приложение
01:11:14
расставить все точки
01:11:16
затем выберите все
01:11:19
тогда здесь в основном
01:11:22
извини, запятая будет
01:11:24
отсюда вот так и просить
01:11:30
тогда нам нужен ответ
01:11:34
следующая функция такая
01:11:38
и здесь в основном
01:11:40
нам нужно сделать переменную, хорошо
01:11:43
простая переменная, постоянная ошибка или
01:11:45
ошибка, если что-нибудь можно написать, то
01:11:49
нам нужно определить ошибку, например ошибки
01:11:52
тогда на упаковке
01:11:55
root, то вам нужно сказать запрос Dot
01:11:58
исходный URL
01:12:02
исходный URL-адрес, подобный этому, не найден, ладно, так что
01:12:05
этот URL-адрес в принципе не имеет этого
01:12:07
почему вам нужно писать такие вещи
01:12:09
окей, тогда после этого
01:12:11
мы можем
01:12:13
пишите так, но в основном здесь
01:12:19
да, теперь это идеально, так что ты можешь дать
01:12:21
простой формат, так что, по сути, мы
01:12:23
делая здесь, мы нацеливаемся на все, что у нас есть
01:12:25
маршруты в порядке и без этого, так что если Union
01:12:27
введите этот любой URL-адрес, подобный этому, затем
01:12:30
это вернется в случае ошибки, хорошо, так что я
01:12:34
прямо сейчас показываю тебе, так что предположим, что я
01:12:36
закрытие нашего терминала, я имею в виду закрытие вашего
01:12:38
сервер и снова нажимаю npm run
01:12:40
этот
01:12:42
и поехали это как спасение 8000
01:12:45
так что прямо сейчас мы можем открыть наш Google
01:12:48
Хром новый
01:12:49
шапка, затем http
01:12:53
8 000
01:12:54
Итак, обратите внимание, что корневая косая черта найдена, так что
01:12:58
это возвращает ошибку, поэтому, если вы
01:13:00
прямо сейчас напечатайте сообщение об успешном завершении теста
01:13:03
API работает отлично, работает
01:13:05
окей, вот так даже ошибка тоже есть
01:13:08
захожу, да
01:13:10
ОК, круто
01:13:12
так просто прямо сейчас, что нам нужно сделать
01:13:14
нам нужно подключить нашу базу данных
01:13:18
поэтому здесь создадим новое имя папки
01:13:21
быть утилиты в этой папке нам нужно
01:13:24
создать наш
01:13:26
нам нужно создать наш db.ts
01:13:30
и прямо сейчас нам нужно пойти к двум
01:13:32
веб-сайты
01:13:33
первый - это не два сайта, которые нам нужны
01:13:36
зайти на несколько веб-сайтов, первый — mongodb
01:13:41
так mongodb и просто зайди на этот сайт
01:13:44
найти Облачную энергию, а также выполнить поиск вверх
01:13:48
тайник, так что это за тайник, это
01:13:51
нам это нужно для подключения наших
01:13:53
радиус, хорошо, мы воспользуемся этой услугой
01:13:55
это очень популярная услуга
01:13:57
так что да, в основном здесь
01:14:00
давайте нажмем «Войти», если я уже вернулся
01:14:02
так что я нажимаю «Войти», если ты
01:14:04
нет бухгалтерского учета, очевидно, зарегистрируйтесь
01:14:06
и создайте такую ​​же учетную запись для mongodb
01:14:08
то же самое и с тайником приложений, окей, надеюсь, ребята
01:14:11
вы знаете, как создать учетную запись
01:14:12
это очень простая вещь
01:14:14
поэтому я просто захожу в оба этих аккаунта
01:14:16
три аккаунта, так что да, я захожу
01:14:18
после завершения входа в систему
01:14:22
Итак, ребята, вход в систему завершен, так что это
01:14:24
наша база данных, так что я просто в mongodb
01:14:27
если вы новичок в mongodb, то сначала
01:14:29
создать организацию, окей, возможно, это так
01:14:31
попросит тебя вернуть тебе право
01:14:32
название организации и первый раз
01:14:34
тогда это будет перенаправление вот так, нет
01:14:36
вот так будет твой mongodb
01:14:38
перенаправить вот так, затем нажмите «Создать»
01:14:40
проект окей, что тебе нужно сделать правильно
01:14:42
сейчас так в новом проекте и что мы будем
01:14:45
дайте нашей базе данных название нашего проекта, поэтому
01:14:46
можно сказать, что это будет LMS YouTube
01:14:52
как учебник LMS YouTube, и вы можете
01:14:55
напишите любое имя, это не похоже на исправленное имя
01:14:57
тогда ты можешь написать что угодно по своему желанию
01:15:00
нажмите создать проект
01:15:02
то отсюда это создаст наш
01:15:05
mongodb и теперь нажмите «Создать свой».
01:15:07
база данных
01:15:08
сейчас здесь я выбираю m031 и я
01:15:12
выбор провайдера AWS и имени кластера
01:15:15
мы также можем написать LMS, а затем нажать кнопку
01:15:17
это создает
01:15:18
поэтому сейчас мы создаем нашу базу данных
01:15:21
нужно создать пользователя здесь, так что
01:15:24
здесь я просто использую значение по умолчанию
01:15:25
имя пользователя и пароли, мы уверены, что
01:15:28
вы копируете пароль отсюда
01:15:29
окей, потому что это важно, поэтому скопируй свой
01:15:31
пароль тогда здесь
01:15:34
это очень важно здесь, просто мы
01:15:38
необходимо добавить IP-адрес, который
01:15:41
0.0.0.0 так что это такое
01:15:45
по сути, белый список IP-адресов, что
01:15:47
будет, если мы напишем, если мы напишем это
01:15:49
тип IP-адреса, затем наша база данных
01:15:52
будет доступен со всего по умолчанию
01:15:54
и чего мы хотим на самом деле, потому что мы
01:15:56
хочу, чтобы наш сайт можно было посетить из любой точки мира
01:15:59
прямо в любом месте слова, вот где
01:16:01
нам нужно добавить этот IP-адрес, и
01:16:03
нажмите «Готово» и «Закрыть», нажмите «Перейти к»
01:16:05
в базах данных да, так что создается так
01:16:09
пока он создается, мы можем перейти к
01:16:10
Cloudinary, затем щелкните эту панель управления
01:16:12
окей, это наш Cloud United
01:16:15
приборную панель и сначала давайте сделаем одну вещь
01:16:18
ребята
01:16:19
и просто возвращайся в своем эээ-точечном EMV
01:16:23
и в этой точечной записи в основном
01:16:25
теперь давай сначала добавим что-нибудь
01:16:28
здесь я добавляю имя переменной, нет
01:16:31
EnV, очевидно, это будет похоже на
01:16:34
развитие, потому что мы развиваемся правильно
01:16:36
теперь они подъезжают к главному, да, теперь происхождение
01:16:40
добавление завершено, теперь нам нужен URI нашей БД
01:16:43
окей, БД
01:16:45
URI вот так
01:16:48
тогда ты можешь дать
01:16:51
вот так и то, что вы скопировали
01:16:53
пароль, вы можете вставить пароль
01:16:55
вот окей, то, что мы скопировали из нашего
01:16:56
база данных mongodb, вот и все, теперь просто
01:16:59
нажмите на это, э-э, подключитесь
01:17:03
тогда отсюда
01:17:05
когда я нажимаю подключиться
01:17:07
это не мы развертываем ваши изменения
01:17:09
в настоящее время на самом деле все в порядке, просто дайте
01:17:11
Перезагрузи окей тогда типа все
01:17:12
проблема будет исправлена
01:17:15
все в порядке
01:17:17
окей, обратите внимание, что соединение работает, так что
01:17:19
нажмите «Подключиться» и выберите этот mongodb для
01:17:21
vs code и скопируйте этот пользовательский интерфейс, хорошо, теперь приходите
01:17:23
вернитесь сюда и вставьте его и вместо
01:17:26
пароль
01:17:27
вставьте этот пароль, вырежьте его и добавьте
01:17:31
вот так
01:17:35
ой, подожди, давай возьмем одну вещь, да, после
01:17:39
поддержка здесь
01:17:41
а затем нам нужно вставить его
01:17:43
круто и здесь нам нужно дать
01:17:45
имя базы данных, окей, как наша коллекция
01:17:47
имя, так что, по сути, я здесь
01:17:51
напишу это имя, чтобы поставить лайк LMS, окей
01:17:54
сохраняем и прямо сейчас нажимаем закрыть И если
01:17:57
ты записываешь, посчитаешь этот просмотр
01:17:58
коллекций ничего не будет, потому что мы
01:18:00
нужно подключить нашу базу данных, тогда это
01:18:02
автоматически создаст такой, как LMS
01:18:04
окей, да, URI БД подключается
01:18:06
сделанный
01:18:07
теперь нам нужен URL-адрес радиуса и это
01:18:10
Облачная энергия, давайте скопируем это Облако.
01:18:12
имя и, очевидно, парни не используют мое
01:18:14
информацию, потому что после записи этого
01:18:16
видео я удалю это всё
01:18:17
информацию, поэтому просто следуйте этим советам
01:18:19
и создайте свою собственную учетную запись и добавьте свой
01:18:22
здесь собственный URL, окей, мой URL не работает
01:18:25
очевидно
01:18:26
тогда сюда просто
01:18:30
нам нужно наше имя в облаке, окей
01:18:35
что это, тогда нам нужен наш
01:18:40
облако
01:18:42
Ключ API в порядке
01:18:45
Ключ Cloud API такой, тогда нам нужен наш
01:18:50
облако
01:18:52
Секретный ключ
01:18:55
очевидно, сохраните капитал позже, потому что
01:18:57
в точке внутри вам нужно сохранить все, чтобы
01:18:58
с большой буквы написано, что это правила
01:19:00
переменная таким образом, извините, теперь вставьте ее
01:19:04
да, сделано сейчас, после того, как Клауд секретирует главное
01:19:07
вещь важная, это в запасе, окей
01:19:09
поэтому создание моей учетной записи выполняется в
01:19:11
на втором плане, так что прямо сейчас я нажимаю на это
01:19:13
создать базу данных, окей
01:19:15
и здесь в основном имя нашей базы данных
01:19:18
будет LMS, мы можем написать, это будет
01:19:20
капитал
01:19:22
тогда глобальная причина в том, чтобы выбирать так, как я
01:19:25
выбираю этот Сингапур рядом с ним
01:19:27
рядом со мной, окей, вот почему это такое
01:19:29
эээ, в Азии вот почему и очевидно
01:19:32
щелкните этот TLS в мире, теперь щелкните
01:19:35
создать, чтобы это создавалось в радиусе
01:19:38
или наверху
01:19:39
для нас, так что просто нажмите на это, только что скопированное
01:19:43
отсюда тогда отсюда
01:19:46
нам нужно добавить наш URL-адрес Regis
01:19:50
вот так и вставьте так радиус
01:19:53
значения в основном вы можете сравнить как
01:19:55
HTTP прямо сейчас HTTP ОК радиус значение
01:19:58
и это URL, поэтому очевидно, что нам нужно
01:20:01
использовать ваш другой s, это означает https
01:20:04
так что радиус другого, все в порядке
01:20:07
вот так, ладно, не совсем похоже, но
01:20:09
вот так, тогда нам нужно написать еще один
01:20:12
э-э, важная переменная, окей, это наша
01:20:15
токен доступа
01:20:18
закрытый ключ
01:20:21
так
01:20:23
ребята, мы отредактируем позже, потому что это
01:20:25
связанные с аутентификацией, поэтому мы будем
01:20:27
отредактируйте позже, без проблем, потому что вы это сделаете
01:20:28
не понимаю сейчас, например, почему я
01:20:30
добавляю это, окей, так что да, пока это
01:20:33
идеально, поэтому вы можете прямо сейчас подключиться
01:20:34
наша база данных
01:20:36
так что для подключения базы данных
01:20:40
просто импортируйте мангуста
01:20:44
от Mongoose и тогда нам понадобится наш
01:20:48
нам нужно потребовать
01:20:51
нашу DOT Envy, то нам нужно написать нашу
01:20:54
URL-адрес Google Видео
01:20:57
какой тип является строкой
01:21:01
и
01:21:02
URL-адрес процесса.env.dv в противном случае выглядит пустым
01:21:04
хорошо
01:21:06
это не выдаст ошибку, окей, это так
01:21:08
как правила практики, основанной на машинописном тексте
01:21:10
с кодированием окей
01:21:12
поэтому подключите БД, и это
01:21:13
асинхронная функция
01:21:15
а затем в этой функции вы используете попытку
01:21:19
catch в этой попытке нам нужно написать
01:21:23
ставка
01:21:24
тогда монголы подключатся, тогда нам нужно
01:21:29
скажи URL нашего DV
01:21:32
тогда это похоже на то, что нам нужно набрать
01:21:35
это тогда
01:21:37
и
01:21:38
это вернет данные, хорошо, какой тип
01:21:41
это похоже на все, что мы можем сказать
01:21:43
а потом здесь
01:21:46
мы можем написать журнал консоли
01:21:48
как база данных
01:21:53
связанный
01:21:55
с
01:21:58
data.connection.host вот так идеально
01:22:00
затем после этого, если обнаружится какая-либо ошибка, тогда
01:22:03
что произойдет, просто запишите в консоль
01:22:05
сообщение об ошибке
01:22:09
и
01:22:11
использовать по установленному тайм-ауту
01:22:15
типа подключи сюда хотя бы 5000 миллисекунд
01:22:17
и здесь нам нужно определить этот тип
01:22:19
и этот тип тоже похож на любой, да
01:22:21
круто, вот и все, создание нашего файла БД
01:22:25
потанцуй прямо сейчас, давай соединим это
01:22:27
так что просто импортируйте наш Connect DV
01:22:30
функция, окей, что мы создали какое-то время
01:22:33
назад, так что подключите БД, о, это не работает
01:22:36
потому что нам нужно экспортировать его из этого
01:22:38
файл, поэтому экспортируйте подключение по умолчанию, например
01:22:41
этот
01:22:42
теперь импортируйте сюда наш Connect TV и
01:22:45
назови это
01:22:47
и сохрани это прямо сейчас, если мы придем сюда
01:22:50
неверная схема mongodb, начните, окей, так что
01:22:53
в принципе здесь что-то не так
01:22:56
URL-адрес GV и что здесь находится, вот это
01:22:59
URI, поэтому измените его на URL, сохраните, и он
01:23:03
очевидно, должно работать, поэтому сервер
01:23:05
подключен к порту 8000 и mongodb
01:23:07
подключусь прямо сейчас, так что сначала
01:23:08
типа нужно немного времени
01:23:10
потом после этого прямо сейчас
01:23:13
нам нужно подключить наш релиз так, радиус
01:23:17
точка ТС вот так и по радиусу
01:23:21
соединения, которые нам нужны. Просто импортируйте на
01:23:23
зависимости сначала я не знаю
01:23:25
существует это в моем package.json или нет
01:23:27
да, это здесь, радиус I O, если ты
01:23:29
не устанавливал, тогда очевидно установи
01:23:31
сначала он проверяет ваш package.json, если
01:23:34
существует оно или нет, ладно, если нет, то
01:23:36
откройте терминал и введите, например, npm I
01:23:38
отпусти, окей
01:23:40
поэтому я просто импортирую наш радиус
01:23:47
от нашего
01:23:50
освобождение глаз вот так
01:23:55
тогда нам нужно снова потребовать наш DOT NV
01:23:58
потому что теперь он подключен к dot EnV, и мы
01:24:01
нужно написать наш
01:24:03
клиентская функция радиуса
01:24:06
так что отпусти
01:24:08
клиент такой
01:24:10
тогда сюда
01:24:12
нам нужно произнести логику, например, если обработать Dot
01:24:17
радиус точки ЛОР
01:24:21
URL есть
01:24:25
тогда мы сможем быстро сказать и написать
01:24:28
журнал консоли вроде
01:24:30
радиус
01:24:34
подключено, да, тогда мы сможем вернуть наши
01:24:37
URL-адрес радиуса, подобный этому
01:24:42
тогда мы можем просто вернуть наш URL-адрес сокращения
01:24:47
вот так, окей, извини, не этот радиус
01:24:50
процесс
01:24:52
Точка
01:24:55
URL-адрес радиуса точки ENT
01:24:57
да, круто, иначе просто брось
01:25:02
новая ошибка, окей, если не подключено
01:25:05
совершенно нормально, как релиз
01:25:08
здесь не удалось установить соединение, тогда мы сможем
01:25:11
экспорт часов
01:25:15
экспортировать постоянный радиус, равный новому
01:25:19
радиус и уменьшите клиент вот так
01:25:21
просто сохрани это прямо сейчас, круто
01:25:23
вот и все, ребята, все готово, точка EnV
01:25:26
здесь тоже сделано идеально
01:25:29
поэтому наше соединение радиуса не работает
01:25:32
прямо сейчас окей, так почему не работает
01:25:33
потому что радиус в основном связан
01:25:35
с кешированием, так что это, очевидно, будет работать
01:25:38
когда мы проведем аутентификацию
01:25:40
система, затем лайк, чтобы вытащить
01:25:43
пользовательские данные, для которых мы будем использовать повторные списки, поэтому
01:25:45
тогда все будет отлично работать, потому что
01:25:47
прямо сейчас мы не готовы, так что
01:25:50
вот почему он не отображается в терминале
01:25:52
вообще-то отключился, окей, вот и все
01:25:54
ребята, это было в видео, так что увидимся
01:25:57
следующий в следующем видео мы будем
01:25:59
Реализуйте обработку ошибок в этом проекте.
01:26:01
Хорошо, увидимся в следующем
01:26:06
окей, ребята, я заметил некоторую проблему в
01:26:10
мой код, окей, не ну, в общем-то, код
01:26:13
проблема, это такая вот эта проблема
01:26:16
предположим, я закрываю сервер, окей
01:26:18
и я снова перезапускаю сервер, например
01:26:20
npm работает с div
01:26:22
затем проверьте, что mongodb занимает много времени
01:26:25
времени для подключения кластера mongodb
01:26:28
окей, ребята, я знаю, почему это так
01:26:31
уделяю время своему ноутбуку, правда, делаю
01:26:34
знай это, потому что, типа, три или четыре
01:26:35
несколько дней назад все работало отлично, но
01:26:38
прямо сейчас только прямо сейчас кластер mongodb
01:26:40
решаю проблему в vs коде, окей, не делаю
01:26:42
проблема в подобном производственном режиме, уведомление
01:26:44
подключение занимает почти минуту
01:26:48
окей, очевидно, уже поздно
01:26:50
так что если вы не страдаете этой проблемой
01:26:52
тогда ты правда, тогда это действительно хорошо
01:26:55
тебе не нужно об этом беспокоиться, но если
01:26:57
ты тоже страдаешь от того же самого
01:26:59
проблема окей, так что если ты тоже
01:27:02
страдаю от такой же проблемы
01:27:04
значит это ошибка, окей, не для меня, окей
01:27:06
это типа работать для всех, окей
01:27:09
тогда что мы можем сделать, мы можем просто прийти
01:27:11
верните эту дверь, конфетку, можете прокомментировать
01:27:13
все в порядке, очевидно, мы воспользуемся этим
01:27:15
база данных, но сейчас, когда я собираюсь
01:27:17
это займет много времени, так что это будет
01:27:19
тратим много времени, окей, вот и все
01:27:22
почему я сейчас подключаю mongodb
01:27:24
без локально, так как мы можем подключиться
01:27:25
mongodb локально просто введите
01:27:28
mongodb слэш слэш
01:27:32
локальный хост
01:27:34
это
01:27:36
URL-адрес mongodb, тогда нам нужно, нам нужно
01:27:39
написать имя, чтобы если я покажу тебе правильно
01:27:41
теперь mongodb Compass, поэтому мы уверены, что
01:27:43
вы загружаете компас mongodb в свой
01:27:45
устройства в порядке, вот так вот это
01:27:47
в основном URL-адрес в порядке, поэтому вы можете просто
01:27:49
сверните его прямо сейчас еще раз, затем коснитесь
01:27:52
элементы, это в основном имя базы данных
01:27:53
тогда мы можем просто сохранить это прямо сейчас
01:27:55
если я сохраню базу данных узла кода
01:27:57
соединение вроде очень быстрое, хорошо, если я
01:28:00
прямо сейчас закрою сервер и если я
01:28:02
запиши прямо сейчас, потом покажу еще раз
01:28:04
ты это поймешь
01:28:05
обратите внимание, соединение происходит очень быстро, окей
01:28:09
очевидно, сейчас мы просто
01:28:11
используйте это, но когда наше приложение
01:28:13
все будет в порядке, когда мы развернем
01:28:16
это на производстве, тогда мы сделаем
01:28:19
просто прокомментируйте это, и мы просто
01:28:22
прокомментируй это, хорошо, и мы начнем
01:28:24
все, мы все опубликуем и
01:28:27
добавьте все в эту базу данных, окей
01:28:29
потому что в режиме производства я замечаю
01:28:32
нет проблем, окей, но в
01:28:34
просто режим разработки в vs code, это
01:28:36
решаю проблему, хорошо, но если нет
01:28:39
страдай, если ты не страдаешь
01:28:41
такого типа любая проблема, если ты ошибаешься
01:28:42
что тогда будет подключаться очень быстро
01:28:45
тебе не обязательно нравится
01:28:46
добавьте эту строку, хорошо, вы можете работать с
01:28:48
это да, очевидно, это хорошо
01:28:50
окей, вот и все, теперь давайте начнем работать
01:28:53
для наших обработчиков ошибок, поэтому здесь
01:28:56
в основном в этих утилитах создайте новый
01:28:58
сложить нужно создать новый файл не
01:29:00
именем папки будет точка обработчика ошибок TS
01:29:06
вот так и здесь
01:29:09
нам нужно создать класс для нашей ошибки
01:29:12
Обработчик, так почему я создаю класс
01:29:14
позвольте мне объяснить вам, так что, вероятно, вы знаете
01:29:17
эти три буквы это называется ой или
01:29:20
объектно-ориентированное программирование, хорошо, так почему
01:29:23
мы используем объектно-ориентированное программирование, поэтому для
01:29:25
пример в нашем контроллере у нас нет
01:29:28
контроллер, в котором у нас много ошибок
01:29:31
права на этот проект у пользователя Zappos нет
01:29:33
писать номер телефона либо нет
01:29:35
написав похожий адрес электронной почты или имя
01:29:38
когда они создают учетную запись, поэтому мы
01:29:40
нужно, нам нужно выдать ошибку типа
01:29:42
эй, интерьер, введи свое имя
01:29:44
ваш адрес электронной почты или предположим, что пользователь вводит
01:29:47
неправильный пароль, поэтому нам нужно ввести
01:29:49
ошибка, например, пожалуйста, введите правильно
01:29:52
пароль в порядке, поэтому нам и нужен
01:29:55
всегда нравиться писать о повышении статуса точки
01:29:58
500, затем, как Json, отправляется ошибка
01:30:01
ответ, поэтому мы пишем то же самое
01:30:03
тип объекта несколько раз, окей
01:30:06
везде мы пишем один и тот же объект
01:30:08
поэтому, чтобы это исправить, мы делаем это
01:30:11
объектно-ориентированный класс, и что это даст
01:30:14
решить, что нам не нужно писать один и тот же тип
01:30:16
объекта несколько раз мы можем
01:30:18
просто позвоните в этот класс, мы можем отправить наш
01:30:21
сообщение об ошибке типа ошибки, и мы можем отправить
01:30:24
статус-кво, то это будет
01:30:25
автоматически генерировать ошибку для нашего
01:30:27
проект, поэтому мы используем его
01:30:30
объектно-ориентированное программирование, даже это
01:30:32
подобное основная причина использования
01:30:34
объектно-ориентированное программирование в порядке, как для
01:30:36
используя класс
01:30:37
объектно-ориентированные значения, это похоже на то, когда
01:30:41
мы используем тот же тип объекта для
01:30:42
несколько раз, то мы сможем уменьшить это количество
01:30:45
можем создать простой класс и сказать
01:30:47
в параметрах, тогда это начнется
01:30:49
работает нормально, как ярлык или код
01:30:52
да, надеюсь, ребята, вы теперь это понимаете
01:30:55
просто создайте его, чтобы я создал
01:30:57
класс, я пишу это имя в ошибку
01:30:59
обработчики
01:31:02
как эти обработчики ошибок
01:31:06
теперь нам нужно обменять этот обмен
01:31:08
это значит, что это другое имя, окей, мы можем
01:31:10
скажи, ну, как будто ты знаешь
01:31:14
если я говорю о подобном функционале
01:31:16
программирование в порядке, так что это похоже на то, что мы
01:31:18
дать другое имя, это ничего
01:31:20
else и здесь нам нужно использовать
01:31:22
Конструктор, окей, это как система
01:31:24
использования объектно-ориентированного программирования, окей
01:31:26
поэтому Конструктор означает, что это получение
01:31:28
параметры ОК параметр или значение это
01:31:30
это значения, поэтому то, что нам нужно, нам нужно
01:31:34
отправить сообщение, очевидно, сообщение об ошибке
01:31:36
и нам нужно сообщить статус-кво вашему
01:31:38
статус-кво, поэтому этот конструктор будет
01:31:40
получить от нас две данные
01:31:43
так
01:31:46
да, тогда в основном здесь
01:31:51
да, идеально, и тогда нам нужно использовать
01:31:55
это супер, так что это будет
01:31:57
в общем, измени это, окей, так что супер значит
01:31:59
по сути это не изменение
01:32:01
встряхивание значения, окей, это называется
01:32:03
ты можешь сказать, тогда нам нужно написать это
01:32:06
это правила объектно-ориентированного подхода
01:32:08
программирование, поэтому этот точечный код состояния
01:32:12
если мы пишем это, значит, мы звоним
01:32:15
это нормально, так что это статус-кво, да
01:32:18
идеальный
01:32:19
затем после этого нам нужно вызвать нашу ошибку
01:32:22
класс, когда вы используете этот захват
01:32:25
придерживаться трассировки, окей, это уведомление, это
01:32:28
ох, это метод, окей, ты
01:32:30
Структура захвата конструктора Trace
01:32:33
в основном это его целевой объект
01:32:36
объект, хорошо, так что ты можешь писать, ты можешь
01:32:38
прочитай это, все в порядке, как внутренний против
01:32:40
код против кода действительно очень продвинутый
01:32:43
редактор кода, окей
01:32:45
это всегда все объясняет
01:32:48
так что вы можете прочитать это отсюда просто так
01:32:50
захват извлечения трассировки
01:32:53
тогда сюда нам нужно отправить это
01:32:56
и этот конструктор точек
01:32:58
так что постройте точку вот так
01:33:03
сейчас здесь в основном
01:33:07
мы можем модуль точечного экспорта, вы можете экспортировать
01:33:10
наши обработчики ошибок такие, и что
01:33:14
это говорит, позволь мне проверить это, окей, так что
01:33:17
ой, извини, нам нужно определить тип, я забыл
01:33:19
это машинописный текст, так что просто добавьте его
01:33:21
введите здесь, так что этот тип в основном
01:33:24
цифры окей статус-кво типа
01:33:27
так что, ребята, в машинописном тексте говорится
01:33:30
так как это похоже на то, что мы не устанавливаем это так
01:33:32
сначала весь наш код статуса, окей, это статус
01:33:37
код
01:33:38
какой тип будет в основном числом, например
01:33:42
этот хорошо, тогда мы можем сказать наш Конструктор и
01:33:47
здесь мы пишем код состояния, который
01:33:49
тип идеален и это супер
01:33:52
сообщите эту точку код статуса код статуса
01:33:55
окей, извини, нам нужно написать это так
01:33:57
с большой буквы Н да, теперь обратите внимание, что это работает так
01:34:01
э-э, просто добавь эту строку, эту одну строку
01:34:03
Тип статус-кво — число, окей, вот так
01:34:05
это машинописный текст, это все равно, что дать
01:34:06
ладья, в остальном наш код был идеален, да
01:34:09
вот и все, класс Euro Handler
01:34:12
сделано, прямо сейчас нам нужно продолжить
01:34:15
функция в нашем промежуточном программном обеспечении, это
01:34:16
называется промежуточным программным обеспечением, поэтому давайте создадим
01:34:19
имя папки будет непосредственным проводом и
01:34:21
в этих папках будет создано имя файла
01:34:24
будет erode.ts и в этом файле мы будем
01:34:28
просто определите какую-то ошибку, окей, как некоторые
01:34:31
типичные ошибки, и мы позвоним вам
01:34:33
Хендлер в порядке
01:34:35
поэтому я показываю тебе, когда объясняю
01:34:37
у тебя все в порядке, не волнуйся, так что сначала
01:34:39
импортируйте наш
01:34:41
Обработчик ошибок здесь
01:34:43
так что ошибка
01:34:46
обработчики
01:34:50
от твоего обработчика это не так
01:34:53
в общем, я не знаю, я это импортировал
01:34:55
да, модуль.exports
01:34:58
или мы можем сказать одно
01:35:01
экспортируйте свой Android по умолчанию вот так
01:35:05
хорошо
01:35:06
потому что мы используем модуль импорта
01:35:07
вот почему да, так что обработчик ошибок ввода
01:35:09
из утилит и наших обработчиков ошибок, таких как
01:35:12
это теперь мы можем сказать модуль
01:35:16
точечный экспорт, и здесь нам нужны наши
01:35:21
три параметра, поэтому ошибка, какой тип
01:35:23
любой
01:35:24
запрос, который, по сути, является нашим следующим
01:35:27
извините, запрос express.js, давайте импортируем
01:35:30
этот запрос от Express
01:35:33
вот так, тогда у нас есть наша раса, которая
01:35:36
означает ответ, поэтому импортируйте его из следующего
01:35:39
извини, не следующий экспресс
01:35:42
затем наша следующая функция
01:35:46
так что импортируйте его из Express, вот так круто
01:35:51
теперь создайте обратный вызов
01:35:53
и просто здесь и прямо сейчас нам нужно
01:35:57
Определите тип кода состояния, извините всех
01:35:59
ошибки, поэтому, если наш код error.status равен
01:36:02
до 0. код состояния
01:36:06
если код состояния тот же, то окей
01:36:09
в остальном идеально, как 500.
01:36:12
так
01:36:13
тогда нам нужно
01:36:17
введите сообщение об ошибке Dot, например error Dot
01:36:24
сообщение да, иначе внутренний сервер
01:36:28
ошибка
01:36:34
да, вот так
01:36:37
потом после этого, если кто-нибудь, если предположим, что мы
01:36:40
вы вводите неверный идентификатор mongodb, окей
01:36:42
неправильный идентификатор mongodb, поэтому ошибка идентификатора mongodb
01:36:46
значения в основном из Front End
01:36:48
предположим, что вы вводите неправильный идентификатор, окей
01:36:51
тогда это выдаст ошибку, ладно от
01:36:53
передняя часть и значения от лайк от нашего
01:36:55
API веб-сайта, поэтому он все еще отображается
01:36:58
ошибка, что это нам говорит
01:37:02
окей, нет проблем, мы исправим такую ​​ошибку
01:37:04
Ошибка идентификатора mongodb здесь, в основном мы
01:37:07
нужно написать типа если ошибка
01:37:10
и имя точки - это ошибка приведения, это
01:37:13
вызвана ошибка приведения, неправильный язык, я
01:37:15
вспомните Кастильо, окей, тогда ресурс есть
01:37:18
не найдено с недействительным это да, это
01:37:21
уже
01:37:22
показываю нам идеальное сообщение, окей, типа
01:37:25
все в порядке, здесь не запятая Олбани
01:37:28
очевидно, здесь будет вот так, окей
01:37:30
вот почему он показывает ошибки, да, сейчас
01:37:32
после этого нам нужна ошибка дублирования ключа
01:37:35
так что это в основном для нашего
01:37:36
аутентификация, так что предположим, что иногда, эээ
01:37:39
Дубликат ключа может подойти, поэтому в случае ошибки
01:37:42
код статуса 11 000, тогда это
01:37:45
называется нашей ошибкой в ​​основном повторяющегося ключа
01:37:47
так
01:37:48
окей, тогда иногда пользователь может ввести неправильно
01:37:52
токен jwc, окей, это называется не JWT
01:37:55
токен, это называется неправильной ошибкой JWT
01:37:58
окей, предположим, что это неправильный пользователь токена
01:38:00
перехожу с почты, окей, тогда это будет
01:38:03
выдайте эту ошибку, поэтому ошибка веб-токена Json
01:38:05
если имя ошибки это
01:38:08
тогда в основном ваш веб-токен Json
01:38:10
недействителен для забастовки позже сейчас после
01:38:13
нам нужна ошибка с истекшим сроком действия JWT, поэтому
01:38:16
иногда очевидно, что срок действия истекает, так что
01:38:19
тогда нам нужно показать еще одну ошибку
01:38:23
вам нравится, если срок действия токена road.name истек
01:38:27
затем это и, очевидно, закрой это, да
01:38:30
Срок действия токена приложения Json истек, попробуйте
01:38:32
снова позже
01:38:34
вот так круто, тогда после восьми мы сможем
01:38:38
прямо сейчас просто эээ
01:38:40
сделать по запрошенному статусу, как этот 0.
01:38:43
код состояния, затем успех Json false и
01:38:45
сообщение будет 0 точек, сообщение крутое и
01:38:49
так
01:38:50
вот и все, ребята, больше ничего не сделано
01:38:53
щас так просто дайте единый формат
01:38:56
и это правильно выглядит, хорошо, ничего
01:38:58
иначе теперь сохраните наш код и откройте
01:39:01
терминал снова, теперь вернись или app.ts
01:39:04
и давайте подключим наши обработчики ошибок в
01:39:07
вот, окей, нам нужно соединить нашу область
01:39:09
а также прямо сейчас, если у вас есть
01:39:10
любая ошибка, тогда наша
01:39:12
наш сервер скажет нам типа «эй, это
01:39:15
это была ошибка, так что экспортируйте, извините
01:39:18
импортируйте наш обработчик ошибок не из этого
01:39:21
обработчик сервера util, это должно быть
01:39:25
косая черта идите к нашим медиальным проводам и
01:39:29
то эта ошибка B убедитесь, что вы
01:39:30
напиши то же самое, ладно, иначе это
01:39:32
решит проблему, поэтому модуль будет экспортировать точки
01:39:35
окей, это не проблема, потому что мы
01:39:39
не могу так написать
01:39:42
поэтому мы можем сказать константу экспорта
01:39:49
Обработчик ошибок, извините
01:39:52
Промежуточное программное обеспечение Heroes можно сказать так
01:39:55
теперь сохраните его и приходите сюда, и мы сможем использовать
01:39:58
это вот так
01:40:02
да, отлично готово, так что мы можем его сохранить
01:40:06
прямо сейчас, так что все идеально
01:40:08
окей и в конце концов окей
01:40:11
конец
01:40:12
нам нужно использовать его, чтобы приложение Dot
01:40:16
использовать, и нам нужно вызвать нашу ошибку
01:40:19
промежуточное программное обеспечение, и нам нужно вызвать это
01:40:20
извини, не нужно звонить, просто воспользуйтесь этим
01:40:23
сохраните это сейчас, чтобы теперь заметить, что все
01:40:25
все еще идеально, окей, круто, значит, наша ошибка
01:40:27
обработка завершена прямо сейчас, поэтому мы просто
01:40:30
создал два файла по ошибке и еще один
01:40:32
одно — ошибка, другое, и одно —
01:40:34
все еще Нью-Йорк важен, это наш
01:40:36
ловить асинхронные ошибки, окей
01:40:39
для создания или контроллера мы будем использовать все
01:40:43
везде мы будем использовать асинхронный
01:40:45
функционировать нормально, поэтому мы также можем
01:40:47
создайте еще один файл для ярлыка нашего
01:40:49
код, который называется кэшированием асинхронных ошибок
01:40:51
окей, поймай асинхронность
01:40:55
ошибка dot JS вот так сейчас в основном
01:41:00
отсюда нам нужно сказать экспорт
01:41:05
по умолчанию
01:41:08
нам может понравиться что угодно, например, параметры
01:41:11
тип функции любой
01:41:14
и в основном здесь
01:41:16
для этого требуется запрос трех параметров
01:41:21
ответ и далее
01:41:25
вот так и обещай, а потом решай
01:41:34
следующий ответ на фанк-запрос
01:41:39
и поймай следующее вот так
01:41:45
закончи это круто, так что в основном здесь
01:41:50
экспортировать по умолчанию
01:41:54
ловить
01:41:58
асинхронное разрушение
01:42:00
так
01:42:03
прямо здесь, очевидно, постоянно
01:42:07
умнее, чем константа экспорта по умолчанию
01:42:10
кеши и ошибки, подобные этому, круто и
01:42:13
очевидно здесь
01:42:15
не забудьте использовать наш
01:42:18
запрос
01:42:20
окей, импортируй это вот так
01:42:23
а потом
01:42:24
ответ
01:42:27
и
01:42:29
следующий
01:42:32
функция классная, теперь просто задайте формат
01:42:36
и мы можем сохранить его и теперь можем начать
01:42:39
наша следующая задача, поэтому следующее, что мы
01:42:42
нужно сделать это
01:42:45
подожди, позволь мне посмотреть расписание
01:42:47
хм, где расписание
01:42:53
да, итак, следующее, что нам нужно сделать
01:42:56
дизайн пользовательской модели, хорошо, сейчас мы
01:42:59
просто перейдем к нашей основной работе или
01:43:02
мы начнем разрабатывать нашу аутентификацию
01:43:04
или модель пользователя, окей, наша модель базы данных, так что
01:43:08
это правда, очень важные дела, окей
01:43:10
так вот и все, ребята, так это было
01:43:14
видео это типа только для обработки
01:43:16
ошибка, увидимся в следующем видео, мы
01:43:17
начните проектировать модель так
01:43:20
всё, пока, увидимся в следующем
01:43:25
окей, иди сюда и создай новый
01:43:28
папка на этом сервере и ребята, я забыл
01:43:31
по сути, здесь небольшая вещь, так что давай
01:43:33
я просто делаю здесь одну вещь, в основном
01:43:35
эээ, это как будто я беру свой jss, окей
01:43:39
поэтому я забыл написать в комментарии, окей
01:43:42
комментарий: этот ключ npx — C и
01:43:45
init, хорошо, просто запустите эту команду и
01:43:50
после запуска этой команды обратите внимание на это
01:43:52
делает на Curious config.json что-то вроде
01:43:54
что очень важно сделать хорошо и
01:43:57
да, вот и все, мы можем усовершенствовать это
01:44:01
да, тогда мы можем просто снова запустить npm
01:44:04
запустить div
01:44:07
ой, извини, нам нужно зайти на наш сервер
01:44:10
первый
01:44:11
и я готов первым ошибиться в парнях
01:44:14
сначала удали эту конфигурацию корпуса, окей
01:44:18
удали его прямо сейчас tsconfig.json, почему
01:44:21
удаляем, потому что нам нужно создать его в
01:44:24
каталог нашего сервера, окей, не в корне
01:44:27
каталог, я сделал ошибку, да, теперь мы
01:44:29
находятся в идеальном каталоге, так что теперь просто
01:44:31
вставить написать комментарий еще раз в PX
01:44:33
космос TSC, затем космос
01:44:36
инициализировать нормально вот так
01:44:39
теперь да, отлично, это в наших корнях
01:44:42
код каталога сервера-директора, теперь мы
01:44:45
можете запустить наш сервер, набрав это
01:44:47
команда в памяти div
01:44:50
какой комментарий мы всегда используем, да
01:44:52
теперь в основном в папке сервера
01:44:55
создать новую папку
01:44:56
названия будут моделями в этих моделях
01:44:59
создаем наш первый пользовательский модуль dot TS
01:45:03
и в этой модели в основном
01:45:06
теперь нам нужно импортировать наш
01:45:09
мангуста
01:45:13
из Mongoose и в основном здесь
01:45:17
после mongos, окей, нам нужно также импортировать
01:45:19
некоторые другие вещи, такие как документ
01:45:23
и
01:45:25
модель и наша схема такие
01:45:29
теперь просто импортируйте Our Big Crypt, пока
01:45:32
мы импортируем Big Clip, мы сохраняем это
01:45:34
нужно хешировать наш пароль, ладно
01:45:37
Крипт из decrypt.js
01:45:41
круто, теперь нам нужна одна переменная
01:45:46
какое имя это электронная почта
01:45:50
отвергает шаблон, что это такое по сути
01:45:53
этот тип доступен
01:45:57
Тип опыта в порядке
01:46:00
так что это по сути одно сообщение тебе
01:46:04
можно просто скопировать его из моего репозитория GitHub
01:46:07
окей, или я просто скопировал это с
01:46:09
переполнение запасов, окей, это нужно для
01:46:11
проверяем нашу электронную почту, хорошо, предположим, что это так
01:46:14
печатание типа shaharia.com, очевидно
01:46:18
это недействительный адрес электронной почты, поэтому этот адрес электронной почты
01:46:21
шаблон отклонения в основном скажет или
01:46:24
эта кнопка отклонения электронного письма в основном будет
01:46:26
оценить почту - это почта ближнего боя.
01:46:28
подтвердить или нет, хорошо, очевидно, нужно
01:46:31
дата, очевидно, должна быть в виде точки
01:46:34
then.com или например gmail.com yahoo.com
01:46:37
окей, тогда почта проверена, тогда
01:46:40
иначе это не выдаст никакой ошибки
01:46:42
мы просто выдадим ошибку, окей
01:46:45
итак, теперь нам нужно создать интерфейс
01:46:48
здесь в основном
01:46:50
окей, так почему мы делаем интерфейс таким
01:46:52
потому что это лучшая практика, окей
01:46:54
поскольку мы используем машинописный текст, так что это
01:46:57
лучшая практика, так что да
01:47:00
интерфейс экспорта I, документ экстента пользователя
01:47:03
Итак, что это за интерфейс, позвольте мне объяснить
01:47:05
ты это сначала, чтобы ты мог сказать, что это
01:47:07
какая-то функция, ладно, можешь подумать
01:47:09
об этом хорошо, но явно не так
01:47:11
функция, это похоже на машинописный текст
01:47:12
интерфейс в этом интерфейсе мы можем
01:47:14
Определите некоторые типы, как у этого пользователя
01:47:17
модель у нас есть имя адрес электронной почты пароль Аватар
01:47:20
правильно, поэтому нам нужно определить этот тип в
01:47:22
верх, это как можно сказать
01:47:24
профессиональная вещь, машинописный текст, окей
01:47:27
вот почему я использую его, так что назовите его
01:47:29
тип — строка электронной почты
01:47:32
какой тип является строкой, пароль является строкой
01:47:35
и это admin.net и этого в нем нет
01:47:38
копии дают неправильное представление, мы
01:47:40
нужен наш аватар
01:47:44
это по сути один объект, и мы
01:47:47
иметь наш публичный идентификатор, потому что, как и мы
01:47:50
используем энергию облака, чтобы у нас был публичный идентификатор
01:47:51
и наш URL-адрес выглядит вот так, потом после
01:47:56
у нас есть наша роль, какой тип
01:48:00
также строковый вызов тогда
01:48:04
извините, ребята, не нужно вводить строку.
01:48:07
можно просто написать здесь как строку
01:48:10
и затем после него нам нужно еще одно поле
01:48:14
какое имя проверено, какое начальное
01:48:17
какое значение в основном имеет логическое значение, окей
01:48:19
поэтому логический, какой тип теперь у нас есть
01:48:22
курсы, которые в основном проводятся в Лос-Анджелесе, это
01:48:25
купленный курс у пользователей, окей
01:48:28
Я объясню это лучше, например, когда
01:48:30
Я напишу код модели, хорошо, так что
01:48:33
сначала я просто определяю тип
01:48:35
поэтому идентификатор курса, тип которого является строкой, и
01:48:39
это круто, так что добавь идентификатор курса, эээ
01:48:46
эээ, курсы
01:48:53
окей, ребята, я забыл нажать здесь одну вещь
01:48:55
нужен второй кронштейн вот так
01:49:00
и извини, что не здесь, да
01:49:05
не снаружи встречаются внутри второй скобки
01:49:08
да, вот так, теперь после этого мы можем добавить
01:49:11
наш собственный метод, похожий на сравнение
01:49:13
пароль, это похоже на наш Another We're
01:49:16
создавая это, эээ
01:49:18
позже, без проблем, я прямо сейчас, просто
01:49:21
определение типов в порядке, поэтому эти немногие
01:49:23
вещи, которые нам нужны в нашей модели, окей, это
01:49:25
несколько вещей, которые нам нужны, так что, верно
01:49:27
теперь давайте начнем писать код модели
01:49:29
так что ты просто схематично
01:49:32
который находится в схеме, и у нас есть пользователь i
01:49:37
здесь я буду столицей, это
01:49:39
в основном наш интерфейс, который мы вызываем
01:49:41
наш дизайн интерфейса, который я использую
01:49:43
имя интерфейса, тогда мы здесь
01:49:46
создавая, как новый Мангуст, то, что мы
01:49:49
всегда делайте, например, создание схемы mongods
01:49:51
в такой схеме Mongoose теперь нам нужно
01:49:55
написать наше имя, что мы всегда должны
01:49:59
так что это имя - строка, очевидно, ты
01:50:01
не нужно вводить одно имя для создания
01:50:03
учетная запись так необходима, правда, а если нет
01:50:06
дайте это, тогда это будет показано как пожалуйста
01:50:09
введите свое имя, да
01:50:12
и электронная почта
01:50:17
необходимо сделать, очевидно, введите это
01:50:21
электронная почта, строка извинения, а не электронная почта и после
01:50:24
это нужно сделать, теперь нам нужен один
01:50:27
здесь важна важная вещь: проверка
01:50:28
потому что нам нужно это подтвердить
01:50:30
и как мы можем это проверить здесь
01:50:32
по сути нам нужно вызвать наш валидатор
01:50:34
это по сути одна функция
01:50:38
и у нас есть значение, какой тип
01:50:41
нить
01:50:43
тогда здесь нам нужно вернуть наше изображение
01:50:47
отклоняет тест DOT по образцу
01:50:49
и это значение, поэтому это значение
01:50:52
в основном наша ценность электронной почты, поэтому мы просто
01:50:54
тестирую, все в порядке
01:50:56
и если возникнут какие-либо проблемы
01:51:01
если почта недействительна, идеально или
01:51:04
подтвердите, затем нам нужно написать сообщение
01:51:07
окей, нам нужно показать сообщение
01:51:08
пользователь, пожалуйста, введите адрес электронной почты следующим образом
01:51:11
теперь давайте напечатаем здесь уникальную истину, потому что
01:51:15
адрес электронной почты, очевидно, должен быть уникальным, а два
01:51:18
пользователь не может иметь тот же адрес электронной почты, что и
01:51:20
почему тогда прямо сейчас у нас есть наш пароль
01:51:23
какой тип также
01:51:26
нить
01:51:28
тогда требуется true, пожалуйста, введите свой
01:51:31
минимальная длина пароля будет 6
01:51:33
пароль должен быть не менее шести символов
01:51:36
и select будет ложным, что мы всегда
01:51:39
напиши пароль
01:51:40
тогда у нас есть рекламодатели, наш профиль
01:51:44
картинка, которую ты можешь видеть
01:51:45
а Аватар, по сути, объект настолько публичный
01:51:48
идентификатор
01:51:50
строка, и это была строка списка под названием
01:51:55
теперь после 8 у нас есть наша роль
01:51:59
который также является строкой и по умолчанию является пользователем
01:52:03
тогда у нас есть проверенное
01:52:07
по сути, мы проверим это на предмет
01:52:10
Админ, окей, так что если подтверждено, это правда
01:52:12
тогда мы покажем, как этот аккаунт
01:52:15
проверено или что-то в этом роде, ок
01:52:18
так что да, тип логический
01:52:21
и значение по умолчанию будет, очевидно, ложным
01:52:24
явно не проверено в начале
01:52:26
тогда у нас есть массив курсов
01:52:30
и в этом массиве в основном у нас есть наши
01:52:33
идентификатор курса
01:52:34
и этот тип идентификатора курса является строкой, поэтому
01:52:38
в общем, ребята, это то, что мы делаем
01:52:39
здесь, какой у нас план, так что
01:52:43
предположим, что пользователь совершает покупку на курсе
01:52:46
мы просто добавим этот идентификатор курса в
01:52:49
массив пользовательских курсов, затем, когда пользователь
01:52:52
перейдем на страницу с подробными сведениями о курсе, мы
01:52:55
получить его, чтобы проверить его с нашего бэкэнда
01:52:57
э-э, идентификатор этого курса, окей, какой курс
01:53:00
у пользователя все в порядке, подробности кодов
01:53:02
ОК, этот курс существует в пользовательском курсе
01:53:06
Идентификатор, если существует, если это существующий пользователь
01:53:09
приобретенный курс, после чего пользователь может получить доступ
01:53:11
это видео курса, иначе каждый я
01:53:14
не могу получить доступ к этому видео Если я не могу
01:53:16
получить доступ к этим курсам к этому видео курса
01:53:18
окей, это что-то вроде гарантии безопасности
01:53:21
платформа для продажи курсов, вот это типа
01:53:23
в нашем плане я объясню это подробнее
01:53:25
практически, когда мы сделаем это практически
01:53:27
хорошо
01:53:29
очень просто, ребята, в этом проекте я
01:53:32
изо всех сил стараюсь добавить это, типа
01:53:34
очень простая структура, хорошо, например, если вы
01:53:36
понимаем лучше, чем здесь, мы
01:53:38
нужно сказать, что временные метки верны, и что
01:53:40
в основном эти два, поэтому, если мы добавим
01:53:42
временная метка истина
01:53:44
и тогда это добавит два поля
01:53:47
создано как обновленное, это нормально, так что
01:53:49
создано, что означает, когда пользователь создаст
01:53:52
в это время и предположим, что пользователь обновляет
01:53:54
изображение профиля, тогда это будет добавлено
01:53:56
еще одно обновление, окей, поэтому я
01:53:59
добавление этих временных меток верно
01:54:01
теперь нам нужно что-то сделать здесь
01:54:04
итак, хеш-пароль
01:54:08
нам нужно хэшировать наш пароль, потому что в
01:54:11
нашу базу данных, мы не будем добавлять точные
01:54:14
пароль пользователя, мы его хешируем
01:54:16
окей, тогда никто не сможет научиться
01:54:18
понять пароль, окей, так что это
01:54:20
почему нам тогда нужно вызывать нашу пользовательскую схему
01:54:23
нам нужно вызвать этот бесплатный метод, тогда мы
01:54:26
не нужно давать направляющие для быстрых кронштейнов
01:54:29
ребята, сначала позвоните в наш пользовательский интерфейс I
01:54:32
вот так, теперь мы можем назвать наш лайк и сохранить
01:54:37
окей, это называется сохранить через, затем в
01:54:42
здесь поставь запятую
01:54:45
ой
01:54:50
тогда здесь напиши асинхронный
01:54:53
функция дает параметр следующий и в
01:54:57
вот просто напиши логику типа если бы наш
01:55:02
эта точка
01:55:05
изменен – это пароль
01:55:10
тогда позвони дальше, это означает, что так
01:55:13
подожди, сначала дай мне закончить, а потом я
01:55:15
объяснить тебе, это очень просто
01:55:17
вещь, но я снова объясняю тебе
01:55:21
да, и просто закончи это, ладно, круто, так что
01:55:24
что это такое, это значит, что мы
01:55:29
получают пароль от нашего пользователя
01:55:31
правые пользователи, увеличивающие пароль
01:55:33
так что, по сути, это наш пароль
01:55:36
просто
01:55:38
хеширую это с помощью Big Crypt, поэтому жду
01:55:41
Хеш точек Big Crypt
01:55:44
и это, э-э, дает такую ​​ценность
01:55:47
пароль с точкой, хорошо, так что этот пароль с точкой
01:55:49
значения в основном ребята наш клиент
01:55:52
пароль ок, какой пользователь несет
01:55:54
этот пароль в порядке
01:55:57
и здесь хешируем его с помощью цепочки
01:56:00
окей, это как бы по цене, окей, если ты
01:56:02
тогда наведите вот так
01:56:04
это собственность, я пароль пользователя, окей, так что
01:56:08
вот и все, а потом мы
01:56:09
звоню в следующий раз
01:56:11
ага
01:56:13
тогда после этого прямо сейчас нам нужно сделать
01:56:15
еще один, который является нашим сравнением
01:56:16
пароль
01:56:18
сравните пароль, чтобы либо схема Dot
01:56:23
методы точечного сравнения
01:56:30
пароль, который является асинхронным
01:56:33
функция
01:56:34
нам нужен наш стажер
01:56:39
пароль, тип которого в основном является строкой
01:56:43
тогда нам нужно написать обещание, которое
01:56:47
тип
01:56:48
логическое значение
01:56:50
затем просто назовем это так, и тогда мы
01:56:52
нужно Просто вернуть Наш Большой Склеп
01:56:54
сравни и это что это так, подожди
01:56:58
всего секунду
01:56:59
вы применяете это, и что это такое, ребята
01:57:05
сравните пароль, чтобы вы могли называть его так
01:57:08
с контроллера легко, тогда мы
01:57:10
взяв весь наш пароль, это
01:57:12
это означает, что клиент конвертирует пароль
01:57:14
предоставление пользователю ввода того, что
01:57:15
пароль, который мы отправляем, мы
01:57:17
получаем отсюда, тогда мы
01:57:19
сравнивая, потому что очевидно, что пользователи
01:57:22
не несет ответственности, как пользователь с хешированным паролем
01:57:24
несет ответственность, как и исходный пароль
01:57:27
но наш пароль базы данных хешируется, поэтому
01:57:31
нам нужно правильно сравнить, нам нужно
01:57:32
сравните с хэш-паролем, поэтому, когда
01:57:35
пользователь дает пароль, который мы
01:57:37
просто проверяя это, мы просто
01:57:39
сравнивая его со всем паролем
01:57:41
окей, мы хэшируем это и мы
01:57:43
проверяю это с помощью этого точечного пароля
01:57:44
этот точечный пароль означает наш оригинальный
01:57:46
пароль базы данных, итак, где мы находимся
01:57:49
как будто мы сможем это понять
01:57:51
пароль правильный, тогда не в порядке
01:57:54
теперь наша модель готова, поэтому просто экспортируйте
01:57:57
это такая пользовательская модель
01:58:03
Я использую пользователя, затем пользователь вырезаю модель Mongoose и
01:58:07
пользовательская схема такая
01:58:10
так что я пользователь, ты снова будешь столицей
01:58:15
и теперь экспортируем наш
01:58:18
по умолчанию наша модель такая классная, так что
01:58:22
вот и все, ребята, наша модель готова
01:58:25
и это очень простая вещь, и я
01:58:27
прямо сейчас форматируем наши коды, а потом
01:58:29
это будет выглядеть лучше, да, так что
01:58:31
это очень простая вещь, окей, так что
01:58:34
прямо сейчас наш дизайн модели готов
01:58:36
прямо сейчас нам нужно запустить нашего пользователя
01:58:38
создайте функции или наши контроллеры, окей
01:58:39
поэтому мы начнем делать это и правильно
01:58:42
это действительно очень интересная часть
01:58:44
потому что в следующем видео
01:58:45
мы увидим, как сделать, как сделать
01:58:49
соединять
01:58:50
Динамические шаблоны электронной почты с нашим node.js
01:58:53
проект, как использовать EGS, окей
01:58:56
тогда EGS значит вот так называется
01:58:59
обращаться со словами, ладно, наверное
01:59:01
ты знаешь, или если ты ничего не делаешь, это
01:59:03
как в разделе «Эм, ты можешь сказать, что ты зависим»
01:59:06
можно выбрать в библиотеке, можно ли петь
01:59:09
почта, ладно, тогда отправлю шаблон письма
01:59:13
нам нужно отправить OTP пользователю для
01:59:16
убедитесь, что почта подходит для активации пользователей
01:59:18
очевидно, это будет в следующем
01:59:20
видео, поэтому мне очень интересно, вот и все
01:59:22
увидимся в следующем видео
01:59:26
окей, ребята, просто закройте эти модели
01:59:28
и закройте эти типы как серверы и
01:59:31
в папке «Этот сервер» создайте новый
01:59:33
имя папки будет контроллерами типа
01:59:36
это в этих контроллерах создают наши
01:59:38
первый пользователь контроллера.ts
01:59:43
и в этом контроллере сначала нам нужно
01:59:46
импортируйте наш запрос не из выборки узла
01:59:50
тогда это станет из Экспресса
01:59:53
ответ
01:59:55
и следующая функция, подобная этой, теперь нам нужна
01:59:58
импортировать наши
02:00:02
в основном нам нужно импортировать прямо сейчас
02:00:04
наша пользовательская модель
02:00:08
из нашей модели мастера
02:00:10
тогда нам нужно импортировать наш
02:00:15
пользователь
02:00:19
какой у нас интерфейс здесь
02:00:21
тогда просто прямо сейчас давайте импортируем немного
02:00:24
некоторые вещи, такие как наши обработчики ошибок
02:00:27
так что это не что-то вроде
02:00:30
функция так просто, что вы входите из
02:00:32
утилизатор-обработчик, подобный этому, тоже хочу
02:00:35
короткие вещи ловят
02:00:37
как в Геттерс, да
02:00:40
вот так теперь создайте нашего пользователя или
02:00:44
зарегистрировать пользователя
02:00:48
Итак, сначала, ребята, зарегистрируйтесь, пользователь
02:00:50
нам нужно сделать интерфейс
02:00:54
так что это в основном мое имя будет
02:00:57
все, что мы можем дать, поэтому я регистрируюсь
02:00:59
Я даю это как регистрацию
02:01:02
тело в порядке
02:01:04
поэтому нам нужны три данных, например имя
02:01:09
что такое строка
02:01:12
у нас есть адрес электронной почты, который также является строкой
02:01:16
и у нас есть пароль, который представляет собой строку
02:01:19
и правило не нужно, а Аватар нужен
02:01:22
например, иногда Аватару нужно, какой тип
02:01:24
струна, окей, круто, вот и все
02:01:29
так что прямо сейчас давайте создадим наши функции
02:01:34
экспортировать регистр констант
02:01:37
или регистрация регистрация
02:01:42
пользователь
02:01:44
вот так создан асинхронный
02:01:46
функция
02:01:48
и тогда извините, не асинхронный вызов
02:01:51
поймать асинхронную ошибку синхронизации
02:01:53
поймать раковину
02:01:55
Герои, а затем наш асинхронный запрос
02:02:01
какой тип является запросом и ответом и
02:02:04
следующий вот такой и ребятам лайк не нужен
02:02:07
эта строка, просто добавьте сюда строку и
02:02:11
закончить вот так
02:02:12
и
02:02:18
здесь в основном создавайте по простой дорожке
02:02:21
как блок, ладно, в общем, если ты
02:02:24
есть какая-либо ошибка, то, что мы всегда делаем
02:02:26
вернуться следующим
02:02:29
новый обработчик пользователя и отправка ошибки Dot
02:02:32
сообщение и наш эээ
02:02:37
ошибка неизвестного типа, окей, введите любой
02:02:41
затем уничтожить точечное сообщение и код состояния
02:02:44
будет 400 идеально и здесь
02:02:46
в общем, сначала то, что нам нужно
02:02:49
нам нужно наше имя
02:02:52
электронная почта
02:02:54
и пароль сначала нам нужны эти несколько
02:02:57
вещи
02:02:59
из нашего точечного тела запроса, поэтому мы будем
02:03:03
возьмем это из нашего request.body, тогда мы
02:03:06
нужно проверить это, что нам нужно проверить
02:03:09
мы можем написать это так, как будто электронная почта существует
02:03:14
поэтому каждое электронное письмо существует, поэтому, по сути, мы
02:03:17
поиск без модели пользователя, если
02:03:20
электронная почта существует, хорошо, если электронная почта существует
02:03:22
существовать
02:03:24
тогда это будет отображаться при ошибке, так что
02:03:28
нравится, если электронная почта существует
02:03:30
тогда это вернется
02:03:33
следующая новая ошибка Обработчик
02:03:35
наша электронная почта уже существует в базе данных, все в порядке
02:03:38
очень простая вещь
02:03:40
теперь нам нужен наш пользователь с таким же именем, как я
02:03:44
тело регистрации, окей, это наше
02:03:45
интерфейс, тогда у нас есть наше имя
02:03:50
электронная почта
02:03:52
и
02:03:54
пароль
02:03:55
вот так круто
02:03:57
теперь просто создайте одну вещь и переменную
02:04:01
имя - активация
02:04:05
жетон, что нам нужно, так что прямо сейчас нам нужно
02:04:07
чтобы создать другую функцию с именем
02:04:10
создать активацию
02:04:14
токен, мы отправим этому пользователю, так что давайте
02:04:18
создайте эту функцию прямо сейчас, просто скопируйте
02:04:20
это вернись сюда
02:04:23
и здесь в основном создайте его экспорт
02:04:28
токен активации постоянной сети, который
02:04:31
есть пользователь, тип которого в основном я
02:04:34
пользователь
02:04:36
затем я
02:04:40
код активации
02:04:42
который нам нужно сделать который включен
02:04:44
в основном интерфейс I токен активации
02:04:51
и давай сначала сделаем это здесь
02:04:55
интерфейс
02:04:59
Токен активации глаза, который у нас есть
02:05:02
жетон
02:05:03
внутри этого тип является строкой и
02:05:07
у нас есть активация
02:05:10
код, который мы можем сказать сейчас, экран
02:05:15
вот так, да, так что мой токен активации - это
02:05:20
функция, объявление которой не определено
02:05:22
недействительно или должно возвращать значение, окей, да
02:05:25
очевидно, нам нужно вернуть какое-то значение
02:05:26
вот почему выдает ошибку, окей
02:05:29
Итак, теперь сначала то, что нам нужно, нам нужно
02:05:31
создайте переменную здесь, имя будет
02:05:33
код активации, теперь давайте сгенерируем наш
02:05:36
код активации, так что математическая точка
02:05:40
пол
02:05:41
и отдай свою 1000
02:05:44
плюс случайная матовая точка
02:05:48
в 9000 вот так, тогда что будет
02:05:52
произойдет, это сгенерирует четырехзначное число
02:05:54
числа, хорошо, поэтому они делают его строкой
02:05:56
потому что нам нужна веревка, вот почему да
02:05:59
теперь создайте нашу переменную токена
02:06:02
теперь нам нужен наш JWT, давайте его импортируем
02:06:05
JWT здесь импортирует JWT
02:06:10
из веб-токена Json
02:06:18
вот так да
02:06:20
тогда очевидно, что это все еще дает
02:06:22
ошибка, потому что нам нужно вернуться тогда
02:06:23
эта ошибка будет выполнена, поэтому знак JWT DOT
02:06:27
теперь нам нужно отправить наш
02:06:31
пользователь
02:06:33
затем код активации
02:06:36
тогда в основном здесь
02:06:40
нам нужна наша точка процесса
02:06:45
секрет env.activation, что нам нужно
02:06:47
сделай прямо сейчас активацию
02:06:51
Секрет
02:06:56
тогда поставь запятую
02:06:58
нам нужен срок действия, в котором около пяти
02:07:02
минуты
02:07:04
так
02:07:06
и просто закончи это здесь
02:07:10
на ступеньку выше, ребята, просто здесь заканчивайте
02:07:14
это
02:07:15
теперь верните наш
02:07:18
жетон
02:07:20
и код активации
02:07:22
поэтому я не могу найти пользователя, я в порядке
02:07:27
это здесь
02:07:29
да, сначала ты будешь Капиталом, сделай это
02:07:32
окей, в нашем, ты знаешь, точка в
02:07:36
ЭнВ
02:07:38
и вставьте этот секрет активации и
02:07:40
этот код активации активации ок
02:07:43
как уникальный номер, который вы можете написать
02:07:45
здесь все в порядке, так что я просто
02:07:48
прямо сейчас вхожу вот так, эээ
02:07:50
активация, э-э, секрет активации, окей
02:07:55
так что предположим что угодно
02:07:58
и вставай вот так, иди сюда, в
02:08:03
топ, очевидно, импортирует наши
02:08:05
ой, извините, нужны наши
02:08:10
точка EnV
02:08:13
да, конфигурация точки, да
02:08:16
теперь не процесс.в активации видео
02:08:18
секрет все еще выдает ошибку, поэтому мы можем
02:08:22
сделайте что-нибудь, ребята, просто напишите
02:08:25
это как секрет
02:08:27
окей, если это безопасно, тогда это понравится, не надо
02:08:31
сообщайте нам об ошибках, хорошо, и что
02:08:33
этот тайный смысл в принципе тебе нужен
02:08:35
чтобы импортировать его из нашего веб-токена Json
02:08:37
вот так да давай теперь сохрани потом
02:08:40
эта ошибка исчезнет, ​​и это говорит
02:08:42
аргумент I резистивного тела не является
02:08:45
приемлемое, назначаемое параметру
02:08:48
типа я пользователь, так что, ребята, это ошибка
02:08:50
для этого происходит я, пользователь, чтобы вы могли
02:08:52
скажи это как угодно, ладно, тогда этого не будет
02:08:54
выдавать какие-либо ошибки и не нуждаться в этом
02:08:56
это я тоже пользователь, все в порядке, это исправлено
02:08:58
да, сделал это прямо сейчас, просто то, что есть
02:09:01
это происходит прямо сейчас, если ты
02:09:02
консоль нашего токена активации, затем это
02:09:04
сгенерирует одну четырехзначную цифру
02:09:06
окей, что тебе в принципе нужно для
02:09:08
пользователь активатора окей
02:09:10
и мы отправим эту активацию в порядке
02:09:14
адрес электронной почты нашего пользователя, хорошо, и как это сделать?
02:09:17
просто прямо сейчас создай еще одну переменную
02:09:20
как постоянный код активации, который
02:09:23
в основном точка токена активации
02:09:25
код активации в порядке, так что в основном это
02:09:27
токен активации не возвращает номер
02:09:29
это возвращает объект, что в этом
02:09:33
объект, у нас есть этот код активации, окей
02:09:34
внутри этого кода активации у нас есть
02:09:36
стоимость в порядке
02:09:38
теперь давайте создадим другое имя переменной
02:09:40
будут данные
02:09:42
тогда прямо здесь, пользователи
02:09:45
тогда имя будет именем пользователя через точку, например
02:09:51
этот
02:09:52
тогда просто сюда нам нужно отправить наши
02:09:55
код активации да, круто, теперь постоянный
02:09:59
HTML
02:10:02
средний EGS, так что давайте сначала импортируем EGS или
02:10:08
нам нужно установить эту зависимость, окей
02:10:10
Итак, сначала позвольте мне, ребята, установить это
02:10:12
зависимость, поэтому импортируйте
02:10:15
EGS из EGS, поэтому давайте установим его по адресу
02:10:20
сначала окей, открой наш терминал
02:10:22
и открыть новую вкладку теперь в PMI EGS нет
02:10:28
только EGS нам нужно еще несколько зависимостей
02:10:30
Я устанавливаю один за другим и следующий
02:10:33
один из них: нам нужен наш
02:10:36
обратите внимание, извините, не нодемон, нам нужен наш узел
02:10:40
почтовые программы
02:10:41
да, вот так
02:10:46
так что установи почтовые программы узлов, так что да
02:10:49
этих двух зависимостей достаточно, верно
02:10:51
теперь, если нам понадобится что-нибудь еще, тогда мы
02:10:53
добавлю это позже, да, так что здесь
02:10:56
по сути
02:10:58
нам нужно сказать, что файл рендеринга в порядке, и в
02:11:01
этот файл рендеринга в основном нам нужен
02:11:03
напишите наш путь, поэтому импортируйте этот путь из
02:11:06
путь, затем соединение через точку и еще одно, ребята
02:11:10
вам не нужно устанавливать это
02:11:12
зависимость в порядке, потому что путь встроен
02:11:14
модуль в node.js не устанавливается по сети, но
02:11:17
EGS здесь и о чем это говорит
02:11:20
окей, нам нужно установить новый
02:11:22
зависимость также обратите внимание, потому что EGS
02:11:25
нет
02:11:26
недоступно для машинописного текста, так что просто
02:11:28
импортируйте это и это тоже npm I это
02:11:32
типы и EGS, окей, так что установи эту гифку
02:11:34
двигатель C просто
02:11:37
и все еще дает не давать права на ошибку
02:11:41
теперь заметьте, что это счет, так что просто закройте
02:11:44
это и иди сюда, чтобы путь соединился вправо
02:11:47
теперь нам нужно написать имя нашего каталога так
02:11:50
сначала поставь первую скобку, а потом d i r
02:11:53
имя или имя каталога, это называется
02:11:54
теперь нам нужно написать путь к электронной почте, чтобы
02:11:58
путь к электронной почте означает путь к шаблону, хорошо, так что
02:12:01
поскольку мы используем здесь наш обычай
02:12:05
файл электронной почты файл типа что что такое
02:12:09
очевидно, динамический, я показываю тебе, поэтому я
02:12:10
создание новой папки с именем «мужчины» и
02:12:13
внутри этих писем в основном внутри этих
02:12:16
почта
02:12:18
Мне нужно перейти ко всей моей папке
02:12:19
потому что мне нужно скопировать это письмо
02:12:21
потому что, очевидно, я не пишу это
02:12:23
HTML да, так что давайте создадим новый
02:12:26
файл
02:12:28
предположим активацию
02:12:30
и
02:12:32
mail.egs, так это расширение EGS
02:12:35
окей, что мы здесь в основном используем
02:12:37
так что здесь, ребята, я копирую
02:12:40
моя почта от Бико Деми здесь, хорошо, потому что
02:12:42
вы имеете в виду письмо активации с кодом активации
02:12:45
вместо Big Audio я просто
02:12:46
добавляю сюда, эээ
02:12:48
как LMS
02:12:51
электронное письмо для активации, ок
02:12:53
так что это такое, это очень просто
02:12:55
дизайн электронной почты добавляю сюда окей очень
02:12:57
простой дизайн электронной почты, как на CSS
02:13:00
и здесь, добро пожаловать, напишите мне код B, чтобы я
02:13:03
до сих пор не знаю, что это такое
02:13:06
название платформы, так что это я просто
02:13:07
просто напиши приветствие в LMS, окей
02:13:09
мы изменим это позже
02:13:11
тогда это динамическое значение hello и
02:13:13
это мы добавляем user.name, так что это
02:13:16
user.name, который мы отправляем с нашего
02:13:18
контроллер, поэтому это будет динамическим
02:13:20
имя пользователя
02:13:22
спасибо за регистрацию в LMS или
02:13:26
какое имя мы можем дать этому имени, ребята, давайте
02:13:27
просто назови здесь имя, окей, типа того
02:13:31
имя, которое мы можем написать здесь
02:13:33
электронное обучение, окей, мы можем сказать электронное обучение, так что
02:13:37
лайк, спасибо за регистрацию
02:13:40
электронное обучение, и наверху мы также можем
02:13:41
напишите, как письмо с активацией электронного обучения
02:13:43
ага
02:13:45
тогда добро пожаловать на электронное обучение
02:13:47
спасибо за регистрацию регистрация
02:13:49
с электронным обучением для активации вашей учетной записи
02:13:51
пожалуйста, используйте следующий код активации
02:13:53
так это код активации
02:13:55
пожалуйста, введите этот код при активации
02:13:57
страницу в течение следующих пяти минут, если вы
02:13:59
не регистрируйте учетную запись электронного обучения
02:14:01
пожалуйста, проигнорируйте это письмо, если оно у вас есть
02:14:03
вопрос, пожалуйста, не стесняйтесь
02:14:06
не стесняйтесь обращаться к нам, это похоже на
02:14:08
потому что в любом случае нет проблем, так что
02:14:11
это шаблон письма, окей, что
02:14:13
в основном мы используем здесь то, что мы
02:14:16
собираюсь использовать здесь, окей, а ты
02:14:18
можно использовать любую почту завершил любую почту
02:14:20
шаблон здесь, вы можете настроить его
02:14:22
HTML по вашему желанию, по вашему желанию, окей
02:14:25
любой шаблон
02:14:26
так что это полностью зависит от тебя
02:14:29
какой шаблон вы хотите здесь использовать, окей
02:14:31
вы можете написать любой HTML, но, очевидно, в
02:14:34
точка EGS окей, это чистый HTML
02:14:38
Я только что добавил EGS и в динамике
02:14:40
место, просто добавь вот так, окей, тогда это
02:14:43
будет работать как динамическое значение, да, так что сейчас
02:14:46
нам нужно нам нужно ввести наш нам нужно
02:14:49
написать здесь путь, ладно, путь такой
02:14:51
по сути
02:14:53
косая черта ТОЧКА, а не косая черта ТОЧКА точка косая черта
02:14:56
зайдите в эту папку почты и это наш
02:15:00
почта идеальна
02:15:02
теперь нам нужно правильно отправить наши данные
02:15:06
так что эти данные в основном представляют собой эту переменную
02:15:08
куда мы отправляем имя и
02:15:10
код активации, что нам нужно в этом
02:15:12
файл
02:15:14
так что да, тогда после этого после этого просто
02:15:17
дай просто закончить это и здесь
02:15:20
теперь нам нужно использовать try catch для отправки
02:15:24
это письмо хорошо, так что это попытка поймать
02:15:26
Заблокируйте эту попытку редактирования пользователя, и теперь мы
02:15:30
нужно создать новый полный новый файл, окей
02:15:33
новое имя файла будет нашей отправкой почты, окей
02:15:36
что мы всегда делаем для отправки почты, окей
02:15:39
отправьте mail.ts вот так и сюда
02:15:44
импортируйте наши почтовые программы узла
02:15:49
обратите внимание, что целью будет не Столичный узел
02:15:53
почтовые программы
02:15:54
импорт узла почтовой программы и транс
02:16:00
Носильщики в порядке
02:16:03
из почтовой программы узла вот так, но узел
02:16:05
почтовой программы не существует, что это такое, так что
02:16:09
нам также нужно импортировать тип person
02:16:12
Итак, давайте импортируем или установим
02:16:14
введите не импортировать и установить его, чтобы открыть
02:16:16
его и просто вставьте в npm, затем я сохраняю DF
02:16:20
типа не мейлер окей как мои дела
02:16:22
понимая это, обратите внимание, как машинописный текст
02:16:23
или против кода, предлагающего мне сказать «установи это»
02:16:26
еще и потому, что этой зависимости нет
02:16:29
большое это осознание не нравится
02:16:31
версия встроенных типов, так очевидно
02:16:33
установи, окей, вот и все, импортируй
02:16:37
наша ЭГС
02:16:40
из EGS теперь импортируем наш путь
02:16:45
с такого пути
02:16:48
давайте не будем нуждаться в AWS SDK, потому что мы
02:16:51
не используем рассылку AWS, здесь мы используем
02:16:53
простая почтовая программа узла
02:16:56
поэтому создайте имя интерфейса, будет
02:16:59
параметры электронной почты, это имя интерфейса, окей
02:17:01
такие варианты электронной почты, как этот, у нас есть электронная почта
02:17:05
вот это строка
02:17:09
у нас есть наш предмет
02:17:12
это строка, и у нас есть шаблон
02:17:17
который также является строкой, и у нас есть данные
02:17:22
ну, по сути, у нас есть ключ
02:17:26
ок, внутри массива, затем строка и какая
02:17:30
тип не является строкой, какой тип
02:17:31
в общем, все в порядке, да, вот так
02:17:34
тогда просто прямо сейчас нам нужно сделать
02:17:38
наша функция ароматной почты отправить письмо
02:17:42
асинхронная функция требует всего
02:17:45
параметры
02:17:47
и эти варианты в основном наша электронная почта
02:17:50
такие варианты
02:17:52
и это наш
02:17:54
обещание, тогда тип похож на void
02:17:58
тогда да, круто, теперь Creator Transporter, так что
02:18:03
транспортер, ну и простая переменная, окей
02:18:07
не импортный перевозчик
02:18:11
не импортируй свой транспортер, окей
02:18:13
транспортер, какой тип транспортера, так что
02:18:15
почтовая программа узла Dot createtransport
02:18:18
и внутри этого нам нужно несколько вещей, поэтому
02:18:22
обрабатываем dot EnV и SMPT, размещая то, что мы
02:18:26
необходимо создать, очевидно, прямо сейчас, мы
02:18:28
нужен наш порт ключа SMP, хорошо, который будет
02:18:32
также нравится это
02:18:33
окей, не нравится
02:18:36
это так SMPT
02:18:40
Портвейн крутой
02:18:43
тогда после этого нам понадобится наша услуга
02:18:49
теперь нам нужно написать авторизацию или
02:18:52
часть аутентификации в порядке, поэтому нам нужно
02:18:54
введите пользователя, который будет почтой SMPT
02:18:58
хорошо
02:18:59
какую почту в основном использовали здесь
02:19:02
тогда нам нужно пройти «ОК», который будет нашим
02:19:05
Пароль процесса.env DOT SMPT вот такой
02:19:11
так что да, теперь все готово
02:19:17
внутри здесь
02:19:19
мы получаем некоторую ценность, как и мы
02:19:22
получение темы письма
02:19:25
шаблон и данные
02:19:28
что мы получаем от наших вариантов, так что
02:19:31
здесь просто отвлекаю внимание, окей
02:19:34
теперь то, что нам нужно, нам нужно получить
02:19:37
путь
02:19:39
на электронную почту
02:19:42
правильно, нам нужно получить файл шаблона
02:19:45
файл шаблона электронной почты, потому что мы используем
02:19:47
динамический шаблон электронной почты, окей
02:19:49
путь к шаблону будет в основном этой точкой
02:19:52
косая черта, а не шаблоны, потому что у нас есть
02:19:55
наша почта
02:19:56
папку-проводник, который мы добавляем, как и все
02:19:59
э-э, шаблоны, окей, мы делаем письма, а не письма
02:20:02
уверен, что здесь тоже мужчины, да, мужчины
02:20:04
прохладный
02:20:06
шаблон
02:20:07
теперь нам нужно отрендерить
02:20:11
шаблон электронной почты
02:20:16
с EGS, очевидно, это просто означает
02:20:19
очевидно, нам нужно расширение EGS, поэтому HTML
02:20:23
какой тип является строкой, теперь среднее значение Dot
02:20:29
путь к шаблону файла рендеринга и
02:20:33
данные теперь нам нужны в основном наша почта
02:20:35
варианты не нуждаются в этом так постоянно
02:20:40
параметры почты да
02:20:44
так это наши варианты почты от SMPT
02:20:47
второе письмо — это наш адрес электронной почты, оно скоро придет
02:20:50
от нашего пользователя. Тема электронной почты является темой
02:20:53
и мы отправляем HTML-код, который
02:20:56
в основном наш HTML, поэтому мы не собираемся
02:20:58
напиши это, потому что то же самое, вот почему
02:21:00
тогда мы можем вызвать нашу точку-транспортер
02:21:04
отправьте письмо, и мы сможем настроить параметры почты
02:21:06
теперь наконец
02:21:08
просто экспортируйте наши
02:21:12
отправьте такое письмо, так что прямо сейчас нам нужно
02:21:15
чтобы добавить эти несколько полей в нашу DOT EnV
02:21:17
Итак, первый хост SMPT
02:21:21
а потом
02:21:22
у нас есть свой
02:21:24
SMTP-порт SMTP
02:21:28
у нас есть служба SMTP
02:21:34
наконец-то у нас также есть почта SMTP
02:21:39
и последнее это
02:21:42
это пароль SMTP, поэтому нам нужно добавить
02:21:45
нам нужно добавить это поле просмотра
02:21:47
значение в порядке
02:21:49
Итак, сначала, по сути, наш
02:21:54
Порт SMTP будет хостом SM.
02:21:59
ТП Точка
02:22:02
gmail.com нравится это
02:22:04
Порт будет 4 6 5 сервис будет
02:22:09
в основном Gmail
02:22:12
и SMTP почта, что нам нужно написать
02:22:14
прямо сейчас, окей, итак, эти две вещи
02:22:16
в основном то, что мне сейчас нужно
02:22:17
зайдите в наш Google Chrome
02:22:19
так что прямо сейчас я захожу в Gmail, я
02:22:21
не могу показать вам, какой адрес электронной почты сейчас я
02:22:23
я иду, потому что по этой причине
02:22:26
YouTube удалил одно из моих видео, поэтому я
02:22:28
не могу переключиться, окей, поэтому я просто вхожу в систему
02:22:30
в один из моих адресов электронной почты, и после входа в систему я
02:22:33
показываю вам, ладно, ладно, ребята, так просто
02:22:35
зайдите сюда после входа в свою электронную почту просто
02:22:38
нажмите «Управление учетной записью Google», окей
02:22:40
с правой стороны ОК, второй значок
02:22:43
тогда это придет на этот URL, мой
02:22:45
account.google.com и просто нажмите кнопку
02:22:47
безопасность, окей, просто нажмите безопасность B, сделайте
02:22:50
уверены, что в вашем аккаунте Google вы
02:22:52
уже активирована двухэтапная аутентификация
02:22:55
иначе это не сработает что
02:22:57
я сейчас начинаю прямо сейчас я
02:23:00
собираюсь сделать хорошо
02:23:01
очевидно, что это не сработает, хм
02:23:05
выиграл эту двухэтапную проверку, окей, типа
02:23:08
этот
02:23:09
так что теперь просто поищи что-нибудь отсюда
02:23:13
окей, это будет наш пароль приложения
02:23:17
просто найдите пароли приложений It
02:23:21
вот так вот это пароль приложения так что
02:23:23
Я просто нажимаю на этот пароль приложения и
02:23:25
после нажатия на пароли приложений это произойдет
02:23:27
попросить вас написать пароль электронной почты
02:23:29
еще раз окей, поэтому я пишу свою электронную почту
02:23:31
пароль, тогда я покажу тебе следующий
02:23:33
экран в порядке, поэтому после ввода вашего
02:23:36
пароль в порядке, тогда он будет перенаправлен
02:23:39
к этому экрану пароли приложения просто
02:23:41
щелкните это, выберите приложение и нажмите другое
02:23:44
пользовательское имя будет именем почтовой программы узла
02:23:46
нажмите «Сгенерировать» после нажатия «Создать это»
02:23:49
просто сгенерирует один пароль, поэтому
02:23:52
да, это наш пароль, так что просто скопируйте
02:23:54
этот пароль ОК, просто скопируйте его
02:23:57
пароль и я нажимаю прямо сейчас готово
02:23:59
кнопка так просто, я закрываю ее, окей
02:24:02
теперь я вернулся сюда
02:24:04
теперь пароль SMTP - это круто и
02:24:08
SMTP-почта Я пишу почту, что
02:24:10
в основном я
02:24:12
добавьте это сюда
02:24:13
да, вот так, это было письмо, окей
02:24:18
что я в основном добавляю сюда
02:24:20
тогда это пароль SMTP, так что
02:24:23
просто очень очень простая вещь окей
02:24:26
тогда прямо сейчас иди сюда
02:24:29
сначала приходите это, та же почта и другие
02:24:32
в первой строке импортируйте наш
02:24:36
эта точка в Z, окей
02:24:39
в такие годы требуется dot EnV
02:24:43
так что это значит, по сути
02:24:46
ребята, наша машинопись дает немного
02:24:48
предупреждение, окей, давайте исправим это предупреждение
02:24:50
так что просто сюда добавь кошелек, все в порядке
02:24:54
Части инициализируют это JavaScript
02:24:55
метод, вероятно, вы знаете это тогда в
02:24:58
здесь, если нет, добавили что-то вроде
02:25:01
587 окей, вот так круто, так что мы уже
02:25:04
добавил этот порт SMTP в нашу DOT EnV, например
02:25:07
это да, 465, окей, это идеально
02:25:10
теперь просто сохраните его и вернитесь
02:25:13
здесь и прямо сейчас здесь в основном используйте
02:25:16
наша отправка почты, импортируйте ее из нашей отправки
02:25:19
почта
02:25:21
а потом
02:25:24
тогда здесь нам нужна та же самая сумма, которая нам нужна
02:25:27
чтобы отправить сюда какую-то ценность, например, по электронной почте, мы
02:25:30
нужно отправить какой-то аргумент, например точку пользователя
02:25:33
электронная почта
02:25:35
тогда нам нужно отправить по теме так
02:25:38
тема в основном активирована
02:25:41
ваша учетная запись, это наш адрес электронной почты
02:25:44
предмет
02:25:47
затем после этого у нас есть наш шаблон, так что
02:25:51
шаблон по сути наш
02:25:54
имя шаблона активации окей активация
02:25:59
почта точка EGS окей, это похоже на имя
02:26:03
имя файла, то нам нужно отправить
02:26:06
данные
02:26:07
круто, теперь ты можешь поставить запятую, да
02:26:10
все так, а после этого это будет
02:26:12
возврат на ответ, поэтому статус гоночной точки
02:26:17
201 точка Json
02:26:20
теперь успех реален
02:26:24
и сообщение будет
02:26:27
пожалуйста
02:26:29
проверьте свою электронную почту
02:26:37
адрес электронной почты пользователя
02:26:40
очевидно добавлено, как обратное обучение, окей
02:26:42
иначе знак доллара не работает
02:26:46
пожалуйста, проверьте свою электронную почту
02:26:49
активировать
02:26:54
ваш счет
02:26:57
вот так круто
02:27:00
так что тогда
02:27:02
нам нужно отправить эту активацию
02:27:04
жетон
02:27:06
в наш интерфейс, как токен активации
02:27:09
Точка
02:27:12
токен, окей, мы просто добавим его в наш
02:27:16
путь регистрируется, когда мы регистрируем пользователя, тогда
02:27:18
мы исправим это, а затем поймаем, если
02:27:22
поймать любую ошибку, а затем вернуться
02:27:25
новые обработчики ошибок, герой, сообщение с точкой
02:27:28
очевидно, твоя воля будет любой
02:27:31
да, вот и все, ребята, мы закончили
02:27:35
э-э, функция регистрации пользователя завершена
02:27:39
это очень большая функция, я знаю, но это
02:27:41
очень важно, окей, вот и все, ребята, я
02:27:44
надеюсь, ты все правильно понимаешь
02:27:45
теперь давайте проверим это, поэтому позвольте мне закончить
02:27:48
эти папки создают новое имя папки
02:27:51
будут корни в этом. Корни создают наши
02:27:55
пользователь написал точку да
02:27:57
теперь в этом корне в основном
02:28:00
импортируйте наш экспресс в первую очередь
02:28:05
от нашего
02:28:07
Выражать
02:28:10
тогда нам нужно импортировать наш
02:28:14
резистор
02:28:17
регистрация такого пользователя из нашего
02:28:19
контроллеры теперь нам нужно создать наши
02:28:23
маршрутизатор, который теперь является маршрутизатором Express
02:28:26
просто маршрутизатор
02:28:29
точечная регистрация и регистрация
02:28:32
пользователю нравится это сейчас
02:28:35
экспортируйте наши маршрутизаторы по умолчанию, круто, теперь приходите
02:28:39
в app.ts и здесь до этого
02:28:42
тестирование API
02:28:44
добавьте этот комментарий к команде Roots, окей, нет
02:28:47
комментарий Теперь приложение будет использовать точку, это будет
02:28:51
косая черта API
02:28:53
косая черта V1 Theon в основном означает
02:28:56
тогда мы сможем импортировать наш, так что просто назовите его
02:29:01
экспортировать импортный маршрутизатор, чтобы ребята не успели
02:29:04
маршрутизатор, окей, сделай его пользовательским маршрутизатором
02:29:09
Итак, пользователь-маршрутизатор и вставьте его сюда, так что
02:29:12
любой маршрутизатор, точка, пост, да, теперь иди сюда
02:29:15
и добавьте сюда пользовательского маршрутизатора
02:29:18
с наших маршрутизаторов и пользовательских маршрутизаторов и
02:29:22
Купер, который дал плохое предложение
02:29:25
вот так это корневая косая черта - это ТОЧКА
02:29:29
рутировать вот так круто
02:29:31
скопируйте это сюда, позвоните этому пользователю-маршрутизатору
02:29:34
так
02:29:36
хорошо
02:29:38
ага
02:29:40
теперь сохраните его и проверьте, есть ли они
02:29:43
ошибка или нет, все в порядке, чтобы не было ошибок
02:29:45
это означает, что мы можем проверить нашу функцию
02:29:47
прямо сейчас, поэтому я собираюсь использовать Postman
02:29:50
так что если ты не знаешь о Почтальоне
02:29:51
Почтальон в основном занимается тестированием API
02:29:55
программное обеспечение в порядке, из этого программного обеспечения вы можете
02:29:57
test мы можем протестировать нашу конечную точку API API, чтобы
02:30:01
Я использую интернет-версию, окей, я
02:30:05
имею в виду
02:30:06
Я просто пойду в Google, окей, и я
02:30:08
ищу Postman и пользуюсь им, окей
02:30:10
так что, в общем, если тебе просто нужно пойти
02:30:14
в Google Chrome, и вам нужно выполнить поиск
02:30:16
Почтальон
02:30:18
рабочий стол, окей, так что Postman скачай, так что
02:30:21
сначала скачайте его, затем установите и
02:30:24
то вы также получите этот тип
02:30:26
экран в порядке, и если вы не знаете о
02:30:28
нравится что-нибудь о Почтальоне, тогда, пожалуйста
02:30:30
например, посмотри видео на YouTube, окей, это
02:30:32
очень простое программное обеспечение
02:30:33
тогда и если ты знаешь, то, очевидно, это
02:30:35
хороший и этот видеопроект, который
02:30:38
также было похоже, что нужны базовые знания
02:30:40
моего Инстаграма, окей, так что это очень
02:30:42
базовые знания ок
02:30:43
так что здесь, в этом почтальоне, я
02:30:46
создаю новую коллекцию и дарю
02:30:47
это название коллекции
02:30:50
эээ, наше электронное обучение, потому что это имя
02:30:53
электронное обучение
02:30:55
такое электронное обучение в этом электронном обучении
02:30:58
давайте создадим наш первый запрос, так что
02:31:03
щелкните этот значок плюса
02:31:05
нажмите на него, опубликуйте запрос и добавьте точку HTTP
02:31:09
слэш слэш локальный хост
02:31:12
8000
02:31:13
косая черта
02:31:16
API косая черта V1 регистрация косой черты для чего
02:31:21
позвольте мне проверить наш корень, это
02:31:25
выход
02:31:27
регистрация идеальна, так что давайте прямо сейчас
02:31:29
попробуй, ладно, сначала отправь jsonline
02:31:34
не могу отправить localhost, выберите другой
02:31:36
агент, хорошо, мне просто нужно, ребята
02:31:38
подключите моего местного агента Postman, хорошо, так что я
02:31:42
забыл подключить, дай мне подключить
02:31:44
тогда это сработает
02:31:45
так что теперь должно работать Просто написать
02:31:48
здесь наши поля, поэтому сначала нам нужны наши
02:31:51
имя так же, как имя, я даю свое имя
02:31:54
хорошо
02:31:57
у нас есть адрес электронной почты, так что позвольте мне просто написать
02:32:01
доступен любой тест, а не тест, так что
02:32:03
нам, очевидно, нужно ввести существующий адрес электронной почты
02:32:06
окей, иначе это не сработает
02:32:08
потому что нам нужно
02:32:10
окей, я просто пишу свое
02:32:13
электронная почта здесь, как программист
02:32:18
Шахадир
02:32:23
добавил Gmail
02:32:27
точка ком окей
02:32:29
затем пароль
02:32:36
будет один два три четыре пять шесть
02:32:38
семь восемь
02:32:40
вот и все, теперь оно отправлено, теперь проверь
02:32:45
итак, он отправляет запрос
02:32:55
так что давайте вернемся сюда, в Gmail
02:33:00
и давайте проверим, так что добро пожаловать в электронное обучение
02:33:05
здравствуйте, спасибо за регистрацию, спасибо
02:33:08
за уничтожение с помощью электронного обучения
02:33:10
активируйте свою учетную запись, пожалуйста, используйте
02:33:12
следующий код активации, чтобы наша почта была
02:33:13
отлично пришло и это письмо это
02:33:17
эээ, этот код действителен в течение следующих пяти
02:33:20
минута, окей, так что это действительно так
02:33:23
выглядишь очень профессионально, так что прямо сейчас
02:33:25
нам нужно ценить, нам нужно создавать
02:33:27
еще одна функция, окей, нам нужно
02:33:29
подтвердите наш адрес электронной почты здесь, чтобы
02:33:32
и после этого зарегистрируйте пользователя прямо сейчас
02:33:34
нам нужно активировать нашего пользователя, так что я
02:33:37
сделаю это в следующем видео, я знаю
02:33:38
это видео очень большое, ладно, но я
02:33:40
добавил много чего в это видео окей
02:33:42
Надеюсь, ребята, вам понравилось, нажмите «ОК», если вам
02:33:45
тогда смотришь это на YouTube
02:33:46
очевидно нажмите кнопку «Подписаться»
02:33:47
забудь еще видео, более сложная тема
02:33:50
потому что я думаю, что я первый ютубер
02:33:53
кто пишет как отправить Dynamic
02:33:56
почта с EGS ок как оформить почту
02:34:00
шаблоны или этот тип расширенных
02:34:02
вещи и добавление их как в одном
02:34:04
видео, я думаю, до сих пор нет
02:34:06
любое видео на YouTube прямо сейчас, окей
02:34:08
у него нет видео на YouTube, верно
02:34:10
сейчас
02:34:11
похоже на это, поэтому очевидно, что
02:34:13
Кнопка подписаться, разбить кнопку лайк
02:34:15
поделитесь этим с друзьями, это будет
02:34:16
очень ценю мою работу, окей, вот и все
02:34:19
увидимся в следующем видео
02:34:22
окей, ребята, так что просто приходите сюда и дайте
02:34:26
новый комментарий типа "эээ" активировать
02:34:30
пользователи
02:34:32
теперь сначала нам нужно создать интерфейс
02:34:34
потому что мы используем машинописный текст, поэтому я
02:34:38
токен активации, а не токен, это типа
02:34:41
запрос
02:34:45
и здесь в основном у нас есть два данных
02:34:47
хорошо, мы получим два данных от нашего
02:34:51
интерфейс в порядке с этим токеном активации
02:34:55
еще один — код активации
02:34:58
какой тип повышения является такой строкой
02:35:02
теперь нам нужно создать наши функции
02:35:04
экспортировать точку, извините, не экспортировать константу DOT
02:35:10
наша активация
02:35:13
пользователь
02:35:15
Теперь поймать асинхронную ошибку
02:35:17
запрос асинхронной функции
02:35:23
ответ
02:35:29
и наш следующий
02:35:31
функционировать вот так
02:35:33
затем просто закончи это и сделай еще один
02:35:39
попробуйте поймать внутри этого, и поймать будет
02:35:41
просто это, если обнаружите какие-либо ошибки
02:35:44
тогда верните это
02:35:47
и этот тип будет в порядке
02:35:51
так что сначала
02:35:54
нам нужна наша активация
02:35:59
токен и наш код активации, что мы
02:36:03
возьму из нашего request.boji как
02:36:06
активация запроса кода активации
02:36:08
запроси, окей, это значит, это значит
02:36:10
очевидно, эти данные нужны для этого типа
02:36:12
окей, поэтому мы используем типа
02:36:14
машинопись
02:36:15
и после этого
02:36:18
нам нужно создать новую переменную, например
02:36:20
постоянный новый пользователь
02:36:24
какой тип в основном пользователь
02:36:28
и теперь нам снова нужен наш пользователь I, окей, я
02:36:32
Пользователь означает наш пользовательский интерфейс
02:36:35
что мы используем в нашей модели вот так
02:36:37
тогда нам нужна наша активация
02:36:41
код, тип которого является строкой
02:36:45
тогда прямо сейчас нам нужно JWT поставить точку
02:36:49
нужна эта проверка точки JWT
02:36:54
нам нужен наш токен активации
02:36:57
затем обработать
02:36:59
точка EnV точка
02:37:02
активация
02:37:07
Секрет
02:37:10
как наш
02:37:12
строка в порядке
02:37:14
тогда, в общем, здесь, ребята, нам нужно
02:37:17
напиши как
02:37:20
пользователю нравится это
02:37:22
окей и, очевидно, поставь вторую скобку
02:37:24
здесь, да, так что это мы
02:37:26
просто создав переменную нового пользователя и
02:37:29
какой тип пользователя это нормально, так что это
02:37:31
в основном для проверки мы пишем
02:37:33
мы называем это пользовательским интерфейсом
02:37:35
окей, это наш код активации, вот это
02:37:36
строка машинистки, затем где jw.verify мы
02:37:39
нужно проверить секрет активации, окей
02:37:42
нам нужно проверить, что токен активации
02:37:44
идеально или нет и даже активация
02:37:45
код также является его подтверждением или нет
02:37:49
так что прямо сейчас нам нужно просто проверить это
02:37:51
лайк, если новый пользователь
02:37:53
точечный код активации, если он не совпадает с
02:37:58
наш код активации, что это значит
02:38:02
это означает неверный код активации, окей
02:38:04
код активации не проверен
02:38:07
окей, неверный код активации, мы это сделаем
02:38:09
передайте эту ошибку пользователям, окей
02:38:12
в противном случае
02:38:15
просто отвлеки наше имя
02:38:18
электронная почта и пароль
02:38:21
в основном часов
02:38:25
новый пользователь точка пользователи ок, теперь нам нужно
02:38:28
проверьте, существует ли это в нашей базе данных
02:38:30
или нет, существует пользователь
02:38:33
если этот пользователь существует, то просто
02:38:40
тогда просто возврат при ошибке
02:38:42
нравиться
02:38:44
электронная почта уже существовала, они уже есть
02:38:46
существует, ок, не электронная почта, мы можем сказать пользователь
02:38:50
в основном мы ищем по электронной почте
02:38:52
вот почему вы можете сказать типа «электронная почта»
02:38:53
оповещение существует идеально, тогда здесь
02:38:56
в основном нам нужно
02:38:59
наш пользователь
02:39:02
который
02:39:05
Я читаю пользователя
02:39:12
точечное создание
02:39:14
usermodel.create
02:39:20
тогда здесь не пользователь, это модель Visa
02:39:23
окей, ребята, usermodel.create, тогда сюда
02:39:26
просто
02:39:27
нам нужно написать все, окей
02:39:30
какое в основном мы получаем имя
02:39:32
адрес электронной почты и пароль такие, да, так
02:39:36
затем просто создайте нашего пользователя
02:39:38
и сюда отправить ответ
02:39:43
например 200 1, а затем ответ Json
02:39:48
успех это
02:39:50
истинный
02:39:53
так
02:39:54
да, успешно, этого достаточно, окей
02:39:57
поэтому пользователь активации токена активации
02:40:01
функция create также выполняется, поэтому просто сохраните
02:40:03
это прямо сейчас и вернуться к нашим корням
02:40:05
скопируйте эту вставку сюда
02:40:09
и это тоже косая черта после запроса
02:40:13
активировать пользователя, затем активировать
02:40:19
активировать пользователя, окей, вызови эту функцию
02:40:21
Просто сохраните это
02:40:23
проверьте, все ли в порядке, так что прямо сейчас мы
02:40:25
нужно
02:40:27
попробуй это, так что вернись в наш Google
02:40:29
Chrome и ребята сначала сохраните это, так что
02:40:32
сохраните это в нашем электронном обучении и создайте
02:40:36
новая папка
02:40:38
имя будет Alt
02:40:41
в этой папке аутентификации давайте сохраним это так
02:40:46
да, сохранение готово, и мы можем это изменить
02:40:48
имя, окей, мы можем переименовать это, так что переименуй
02:40:51
это просто
02:40:55
Пользователь резистора, подобный этому, теперь создает нового
02:41:00
запрос будет почтовым запросом
02:41:03
эта косая черта
02:41:06
активируйте пользователей, окей, очевидно, вам нужно
02:41:08
чтобы отправить какое-то значение отсюда, например
02:41:10
Json, но то, что нам нужно отправить, нам нужно
02:41:14
отправьте нашу активацию
02:41:20
код
02:41:22
тогда нам нужно отправить
02:41:25
активация
02:41:28
жетон
02:41:30
так что это будет, по сути, это
02:41:33
ценить
02:41:34
позвольте мне еще раз проверить наш код vs, так что vs
02:41:37
значение кода — наше имя, хорошо, потому что если
02:41:39
любой, если у тебя есть орфографическая ошибка, это
02:41:41
не будет работать код активации
02:41:47
токен активации вот этот, да
02:41:49
идеальный и код активации
02:41:52
прохладный
02:41:54
Итак, ребята, позвольте мне ввести здесь новое письмо
02:41:56
окей, как поддержка на свидании
02:42:01
теперь нажмите «Отправить», потому что предыдущее письмо
02:42:04
срок годности истек, окей, поэтому давайте
02:42:07
создайте и обратите внимание, что отправлено новое
02:42:10
почта, так что дай мне проверить почту, так что да
02:42:12
обратите внимание, это письмо, добро пожаловать
02:42:14
электронное обучение и это активация
02:42:15
код, поэтому сначала нам нужно скопировать его
02:42:18
токен активации, потому что нам нужно отправить
02:42:20
этот токен активации также просто скопируйте
02:42:22
вот иди сюда, этот токен активации
02:42:25
будет это
02:42:26
код активации, по сути, наш this on
02:42:30
898, вот и все, нажмите «Отправить», и давайте
02:42:34
идти
02:42:35
должен быть предоставлен секретный или открытый ключ
02:42:37
что-то ошибка, так что просто проверьте это
02:42:40
здесь
02:42:43
Секрет активации
02:42:48
позвольте мне проверить активацию dot EnV
02:42:50
Секрет
02:42:52
окей, ребята, итак, я тут разлил
02:42:56
ошибка
02:42:57
проверьте, это не активация
02:43:00
нам нужен еще один я здесь, окей, типа
02:43:02
Секреты активации очевидно возьми
02:43:04
из нашей записи DOT, окей, месса должна быть
02:43:07
то же написание, иначе это не так
02:43:09
работай, так что сохрани это прямо сейчас и давай дадим
02:43:11
повторите попытку, поэтому нажмите «Отправить».
02:43:14
так что успех верен, это означает, что он создан
02:43:17
аккаунт, так что прямо сейчас, если мы пойдем в
02:43:20
базу данных, так как я использую нашу местную
02:43:24
базу данных, поэтому просто откройте mongodb
02:43:26
кластер не кластер mongodb компас и
02:43:29
соедините его с нашим URL-адресом, окей
02:43:33
прокси мы знаем как его подключить тогда
02:43:35
просто зайди сюда и освежись
02:43:38
обновить значения, но это обновление
02:43:42
или нажмите это и нажмите здесь
02:43:46
теперь просто нажмите «Пользователи» и нажмите «Это»
02:43:49
значок обновления
02:43:55
да вот что это за наше
02:43:58
данные, поэтому наш пользователь идеально создает
02:44:01
имя это адрес электронной почты это пароль
02:44:03
хешированное идеальное правило, этот пользователь
02:44:05
проверено ложно, и это курс
02:44:07
очевидно, здесь пусто, окей, так что
02:44:10
он отлично работает, как мы и ожидали
02:44:12
наш активирующий пользователь также работает, так что вы
02:44:14
можно просто сохранить
02:44:16
и здесь мы можем дать это имя
02:44:20
активировать
02:44:24
пользователь, просто сохраните его, как этот код
02:44:32
так что давайте изменим новую вещь с
02:44:34
вот и давай возьмем что-нибудь новое, окей так
02:44:37
давай напечатаем это письмо, хорошо
02:44:39
Sponsorshipme.com нравится, тогда давай
02:44:43
отправь запрос на эту почту окей давай
02:44:45
отправь еще один лайк с кодом активации, окей
02:44:47
поэтому, пожалуйста, проверьте свою электронную почту и, очевидно,
02:44:50
скопируйте этот код активации, ребята
02:44:53
и иди сюда
02:44:55
обнови его
02:45:00
вот так и отсюда предположим, что я
02:45:03
набрав неправильный код активации и
02:45:05
отправлено уведомление о недействительном коде активации, поэтому
02:45:08
очевидно, сейчас это не работает и
02:45:11
если мы прямо сейчас напечатаем правильный вариант, так
02:45:13
обратите внимание, что сюда отправлено новое письмо
02:45:15
это почта и это активация
02:45:17
код 5461, давайте воспользуемся этим
02:45:21
теперь нажмите «Отправить успех», если вы придете
02:45:24
вернуться в базу данных, если вы обновите
02:45:26
обратите внимание, что данные поступают идеально, это означает
02:45:29
это отлично работает, если мы вводим неправильно
02:45:31
э-э, OTP, тогда это не будет работать, ладно, так что
02:45:34
сейчас это совершенно секретно, окей, так
02:45:37
обе наши работы завершены
02:45:41
активировать пользователя сделано прямо сейчас
02:45:43
что будет дальше? Следующий очень
02:45:46
важно, и это прямо сейчас нам нужно
02:45:49
для реализации наших функций входа в систему с помощью нашего
02:45:52
токен доступа и токен обновления в порядке
02:45:55
так что я знаю, что это больше всего нравится, эээ
02:45:57
интересная часть этого урока
02:45:59
потому что там не так уж и много
02:46:02
учебник с подобным токеном активации и
02:46:04
обновить токен, как расширенный
02:46:06
система аутентификации в порядке, так что я тоже
02:46:08
очень интересно тебя этому научить
02:46:10
окей, в следующей части я покажу тебе это
02:46:12
не волнуйся, увидимся в следующем видео
02:46:16
Итак, ребята, сначала нам нужно пойти к нам
02:46:20
DOT ENC, хорошо, потому что нам нужно сделать
02:46:22
некоторые переменные конфигурации здесь
02:46:25
в основном после тайного ухода за Клаудом
02:46:28
после активации секрета мы сможем это сделать
02:46:30
так что это, по сути, наш доступ
02:46:35
токен доступа к орфографической ошибке
02:46:41
и, по сути, наш токен обновления, что такое
02:46:45
в общем, мы собираемся реализовать
02:46:47
прямо сейчас, хорошо, токен доступа будет
02:46:50
на одной веревке, ладно, отпусти меня
02:46:54
нравится
02:46:55
такой сайт, как ты, можешь зайти, пароль
02:46:59
генератор, окей, можешь поискать это
02:47:01
можно перейти на этот быстрый пароль веб-сайта
02:47:03
генератор вот этот
02:47:05
затем нажмите на это, используйте генератор паролей
02:47:08
нажмите здесь, как 50, сейчас скопируйте пароль
02:47:11
окей, тогда просто иди сюда и вставь это
02:47:16
то же самое для токена обновления
02:47:19
но очевидно, что это будет не похоже
02:47:21
пароль, нам нужно его изменить, так что эээ
02:47:24
нажмите здесь и еще раз нажмите «Перезагрузить»
02:47:29
теперь сделай 50, теперь скопируй пароль и
02:47:33
сделано, просто обновите его на новый
02:47:36
да, так что это токен обновления и
02:47:39
создание токена доступа завершено
02:47:41
обновить токен доступа к токену здесь и сейчас
02:47:44
давайте вернемся к нашей пользовательской модели и
02:47:47
прямо сейчас нам нужно сделать несколько
02:47:49
что-то в нашей пользовательской модели, окей, нам нужно
02:47:51
снова создайте здесь несколько собственных методов
02:47:54
так
02:47:56
поэтому сначала добавьте это в наш
02:47:59
интерфейс в порядке, как будто нам нужен наш знак
02:48:07
жетон оси, мы можем дать это
02:48:11
это в Капитал, как этот знак в знак
02:48:16
токен доступа не входит в систему синусный доступ
02:48:18
токен, тогда какой тип является строкой, да, мы
02:48:22
могу скопировать и вставить сюда
02:48:24
вместо синусоидального токена доступа прямо здесь
02:48:28
знак
02:48:30
обновить токен, подобный этому коду, в
02:48:35
вершина
02:48:36
нам нужен наш
02:48:37
точка EnV, поэтому требуется
02:48:42
точка EnV точка
02:48:46
такая конфигурация, тогда в основном здесь
02:48:50
нам нужно импортировать наш JWT
02:48:53
из нашего веб-токена Json, например этого стерео
02:48:57
Bluetooth
02:48:58
из веб-токена Json
02:49:01
да, готово, теперь давай отсканируем это дно
02:49:06
но перед этим сравнить пароль мы можем
02:49:08
сделай так, чтобы это имя было первым
02:49:11
в основном подписывать
02:49:13
наш токен доступа в порядке, так что это синус
02:49:16
значения токенов доступа, ну, когда в основном
02:49:19
пользователь войдет в систему, мы создадим доступ
02:49:22
токен, окей, очевидно, мы его создадим
02:49:24
и мы добавим его в наш Json
02:49:25
приложение, окей, мы отредактируем или сделаем
02:49:28
подпишите его тогда, когда пользователь даст что-то вроде
02:49:32
Перезагрузите или пользователь даст
02:49:34
доступ к тому, как будто ты меня знаешь, руби меня, окей
02:49:38
получить пользователя, тогда мы просто
02:49:41
сравни это, хорошо, поэтому я объясню это как
02:49:44
с программированием тоже тогда буду
02:49:46
пойми это еще раз, ладно, так что сначала
02:49:48
дай мне это написать, тогда я объясню
02:49:50
с тобой
02:49:51
это очень простая вещь
02:49:53
наслаждайтесь точечными методами схемы, а затем синусоидой
02:49:56
токен доступа, мы можем сказать, что это включение
02:49:58
функция и внутри здесь нам нужно
02:50:01
вернуть наш
02:50:03
JWT точка
02:50:06
подпишите, а затем в основном
02:50:10
у нас есть идентификатор, который будет нашей точкой
02:50:13
подчеркивание идентификатора
02:50:15
затем процесс.env
02:50:18
потому что
02:50:20
наш основной токен доступа
02:50:24
как было имя, позволь мне скопировать
02:50:26
очевидно, это имя должно быть
02:50:28
полностью сим
02:50:30
токен доступа, подобный этому и другому
02:50:34
пустая строка
02:50:36
круто, посмотрим
02:50:38
так что это вообще такое
02:50:41
мы просто вошли в наш доступ
02:50:44
плагин, окей, jw. Подпиши этот идентификатор в принципе
02:50:47
эта королева
02:50:48
это будет подчеркивание этого пользователя для входа в систему
02:50:51
ID, хорошо, мы устанавливаем это в этом идентификаторе
02:50:54
хорошо
02:50:56
тогда мы добавим вам этот доступ
02:50:59
знай, что наш э-э привел тебя в доступ
02:51:02
жетон, окей, тогда нам тоже нужно
02:51:04
назначить наш токен обновления
02:51:07
токен обновления подписи
02:51:10
затем пользовательская схема Dot
02:51:14
подписать токен обновления, а затем вернуться
02:51:18
подпишите токен обновления, как этот вызов, мы
02:51:22
убедитесь, что снова окружающая среда
02:51:24
переменная конфигурации
02:51:26
имя похоже или нет
02:51:28
потому что если не похоже на то, то нет
02:51:30
все в порядке, вот и все, наши два метода
02:51:33
создание сделано, в основном, как наши эээ
02:51:36
это такой тип системы аутентификации
02:51:39
работаем как мы работаем с обновлением
02:51:43
токен и токен доступа, поэтому сначала
02:51:45
понять эти несколько вещей, поэтому, когда мы
02:51:47
бьют по этому пользователю косой черты API косой черты
02:51:50
косая черта войдите с нашего клиентского сайта с помощью
02:51:52
почтовый запрос, который мы отправляем этим двум
02:51:55
правильный адрес электронной почты и пароль для нашего
02:51:56
сервер, затем сервер сначала проверяет
02:51:59
учетные данные, адрес электронной почты и пароль
02:52:01
правильно или нет, если это существует в нашем
02:52:03
база данных или нет, тогда ты тоже
02:52:05
проверка пароля пароль
02:52:07
правильно или нет, если верно, то сервер
02:52:09
отправляет куки в браузер, окей, эээ
02:52:12
здесь в основном при отправке с сервера
02:52:14
файлы cookie на сервер браузера отправляют два
02:52:16
куки-файлы, окей, не одиночные, мы устанавливаем
02:52:19
обновить токен доступа токен доступа токен доступа
02:52:22
срок действия истекает через пять минут
02:52:25
и срок действия токена обновления истечет, как
02:52:28
как после
02:52:30
ты знаешь, спустя долгое время, ладно, но
02:52:32
токен доступа обновится после того, как нет
02:52:35
Срок действия токена доступа к обновлению истечет после
02:52:38
короткое время, а затем, когда в основном доступ в
02:52:42
здесь только что отметил, когда мы получим это
02:52:44
нажимая на этот API, пользователь рубит меня
02:52:47
тогда, если срок действия токена истек, значит срок действия истек
02:52:49
окей, когда мы доберемся до этого
02:52:52
косая черта API косая черта пользователя косая черта обновить мы
02:52:55
получаем новый токен доступа, как наши дела
02:52:58
получение токена доступа, так что в основном
02:53:00
этот токен доступа — это этот токен доступа
02:53:02
истечет через пять минут, поэтому, когда
02:53:04
срок действия нашего токена обновления истекает
02:53:08
автоматически генерируется на другом
02:53:09
токен доступа, поэтому этот токен доступа является
02:53:12
главное, что позади?
02:53:14
система аутентификации, окей, мы готовы
02:53:16
проверка нашего пользователя с этим доступом
02:53:18
токен и токен обновления помогают
02:53:20
для создания токена доступа и доступа
02:53:23
срок действия токена истекает через пять минут, поэтому
02:53:25
это похоже на более высокий уровень безопасности
02:53:27
это так очевидно через пять минут
02:53:29
через пять минут или после перезагрузки
02:53:31
наш токен доступа меняется, поэтому это означает
02:53:34
это высокозащищено, что не понравится ни одному хакеру
02:53:36
легко взломать это, ок, потому что это
02:53:38
изменение
02:53:39
хорошо
02:53:40
вот и все, чтобы получить новый токен доступа
02:53:44
где мы нажимаем на этот URL, тогда хорошо
02:53:47
этот URL-адрес в основном возвращает новый
02:53:49
токен доступа, хорошо, тогда когда мы будем
02:53:52
получение нового токена доступа, а затем спереди
02:53:54
закончим, как будто мы прошли аутентификацию, хорошо, если
02:53:57
нет токена доступа, тогда, очевидно, нет
02:53:58
аутентифицирован, и если токен доступа не
02:54:00
типа, срок годности истек, не истек тогда
02:54:04
подтвердите, окей, тогда подлинность подтверждена
02:54:06
пользователь аутентифицируется спереди
02:54:07
конец, но если срок действия истекает, то это не
02:54:10
прошел проверку подлинности, так что, ребята, надеюсь, вы
02:54:12
понять систему, как на самом деле это
02:54:14
обновить токен и токен доступа работают нормально
02:54:17
так что прямо сейчас я покажу тебе практически
02:54:20
с кодом, так что это было как по плану, окей
02:54:23
что мы собираемся реализовать прямо сейчас
02:54:24
Итак, давайте начнем с нашего собственного метода
02:54:27
создание готово прямо сейчас просто приходи
02:54:28
верните этот пользовательский контроллер и после здесь
02:54:31
оставить комментарий, например, войти в систему
02:54:35
так что сначала
02:54:38
прямо здесь, в интерфейсе
02:54:43
имя будет я
02:54:47
запрос на вход, мы можем сказать ок
02:54:51
и у нас есть адрес электронной почты и пароль прямо в
02:54:54
этот
02:54:55
наш адрес электронной почты и пароль для входа в систему с помощью
02:54:58
оба типа
02:55:00
строка окей, теперь просто войдите в систему
02:55:05
функция, поэтому экспортируйте пользователя с постоянным входом в систему
02:55:09
асинхронная ошибка кэша
02:55:11
асинхронная функция
02:55:14
запрос какой тип
02:55:18
запрос
02:55:20
ответ
02:55:22
и следующий
02:55:30
вот так теперь создай и попробуй поймать
02:55:34
и улов будет вот этим
02:55:40
и ваш
02:55:42
тип будет любой
02:55:44
ага
02:55:45
поэтому внутри этой попытки сначала у нас есть
02:55:49
электронная почта
02:55:51
и пароль и мы
02:55:54
получая его от нашего тела правильно и
02:55:58
этот тип, когда я запрашиваю вход в систему, я не делаю
02:56:01
знаю, почему
02:56:02
да ладно, давай предложим эту длинную вещь
02:56:04
очевидно, это нехорошо, ладно, я пишу
02:56:06
еще раз все, поэтому я запрашиваю вход в систему, поэтому
02:56:09
этот адрес электронной почты и пароль, которые мы получаем
02:56:11
это от нашего тела и в котором мы находимся
02:56:13
используя этот интерфейс, я вхожу в систему
02:56:14
потому что в этом интерфейсе у нас есть электронная почта
02:56:16
пароль Определите тип, вот почему ок
02:56:20
после этого
02:56:22
это не приложение
02:56:24
адрес электронной почты или пароль, если пользователя нет в системе
02:56:28
оплата электронной почты или пароля, а затем возврат
02:56:31
новый обработчик ошибок, например, введите
02:56:34
электронная почта и пароль
02:56:36
окей вот так
02:56:38
а потом в основном
02:56:41
здесь, ребята, нам нужен наш знак, если я получу
02:56:44
это здесь, тогда нам нужно, если нам нравится
02:56:48
пользователь if вводит все поле
02:56:50
генеративный поиск прямо сейчас, пользователь
02:56:52
с электронной почтой, и нам нужно написать это
02:56:54
выберите пароль, тогда ему понравится выбрать
02:56:57
пароль также сейчас, если у него нет пользователя
02:57:03
если нет пользователя, верните это как
02:57:06
в Relic адрес электронной почты или пароль в порядке
02:57:08
как будто пользователь не существует, если адрес электронной почты
02:57:11
неверно, то теперь нам нужно проверить наши
02:57:13
пароль совпадает с паролем, поэтому мы
02:57:16
прямо сейчас вызываю наш пароль для сравнения
02:57:18
метод ок, собственный метод
02:57:20
окей, не эти две вещи, эта

Описание:

Welcome to the LMS / Learning Management System Full stack series on YouTube. In this series, I will show you how to build one industrial-level LMS platform with typescript, node js, express js, MongoDB, Redis, next 13,rtk query, socket io, and much more. Follow Becodemy on social media for all updates: Instagram: https://www.facebook.com/unsupportedbrowser Linkedin: https://www.linkedin.com/in/shahriar-sajeeb-76763222a/ Source Code: https://becodemy.com/course/all-functional-mern-stack-lms-learning-management-system-series-with-next-13-typescript-full-course Timestamps: 00:00:00 - 00:26:40 Project Overview 00:26:40 - 00:37:34 Software Design / Project Plan 00:37:34 - 00:53:09 Technology brief //Which technology we will use and why we will use these technologies 00:53:09 - 00:57:13 Code Editor overview 00:57:13 - 01:04:21 Project server setup 01:04:21 - 01:26:03 Database, Cloudinary, Redis connection 01:26:03 - 01:43:22 Handle Errors 01:43:22 - 01:59:23 User model design 01:59:23 - 02:34:21 User registration 02:34:21 - 02:46:15 User Activation 02:46:15 - 03:12:02 User login, logout 03:12:02 - 03:23:34 User protected & Authorization middleware 03:23:34 - 03:49:16 Generate new Access token, user social authentication, get user info 03:49:16 - 04:19:55 Update user info, password, avatar 04:19:55 - 04:38:23 Course Model design 04:38:23 - 04:57:12 Create course, Edit course 04:57:12 - 05:14:48 Get single and all courses -- without purchasing 05:14:48 - 05:25:20 Get course content,get user accessible all courses --- only for valid-user 05:25:20 - 05:51:07 Create question, add reply in question 05:51:07 - 06:14:48 add review in course 06:14:48 - 06:22:08 Notification and Order model 06:22:08 - 06:47:38 Create Order 06:47:38 - 07:07:40 Get all notifications, update notification status 07:07:40 - 07:14:23 Delete read notifications -- with crone after a certain time 07:14:23 - 07:23:38 Get all users, courses, orders 07:23:38 - 07:28:45 Add and get members in Admin dashboard 07:28:45 - 07:38:16 Delete course, Delete user 07:38:16 - 08:00:16 Get the last 28 days' users,orders, notifications for the last 1year 08:00:16 - 08:07:23 Layout model Design 08:07:23 - 08:25:00 Create Faq,Hero banner,Categories 08:25:00 - 08:39:20 Edit Faq,Hero banner,Categories 08:39:20 - 08:55:00 Advance cache maintenance For business inquiries: [email protected]

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

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

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

mobile menu iconКак можно скачать видео "All Functional MERN Stack LMS / Learning Management system series with next 13, TypeScript | Part 1"?mobile menu icon

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

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

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

mobile menu iconКакой формат видео "All Functional MERN Stack LMS / Learning Management system series with next 13, TypeScript | Part 1" выбрать?mobile menu icon

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

mobile menu iconПочему компьютер зависает при загрузке видео "All Functional MERN Stack LMS / Learning Management system series with next 13, TypeScript | Part 1"?mobile menu icon

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

mobile menu iconКак скачать видео "All Functional MERN Stack LMS / Learning Management system series with next 13, TypeScript | Part 1" на телефон?mobile menu icon

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

mobile menu iconКак скачать аудиодорожку (музыку) в MP3 "All Functional MERN Stack LMS / Learning Management system series with next 13, TypeScript | Part 1"?mobile menu icon

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

mobile menu iconКак сохранить кадр из видео "All Functional MERN Stack LMS / Learning Management system series with next 13, TypeScript | Part 1"?mobile menu icon

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

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

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