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

Скачать "Node.js #5 Модуль событий (Event Module)"

input logo icon
Теги видео
|

Теги видео

web
develop
front-end
frontend
веб
разработка
программирование
обучение
education
lesson
tutorial
лекция
урок
образование
node js
node js это
nodemon
ejs
node.js tutorial
node.js курс
node.js основы
node.js для начинающих
node express
express
express router
ejs template
mongo
mongodb
node mongodb
heroku
Heroku deploy
node
node с нуля
node js уроки
node js лекции
node js основы
node.js введение
node js полный курс
yauhenk
webdev
Субтитры
|

Субтитры

subtitles menu arrow
  • enАнглийский
Скачать
00:00:02
вы на канале в pdf канале посвященному
00:00:04
веб-разработки и всему что с ней связано
00:00:07
добро пожаловать в очередной урок
00:00:09
посвященный но джесс и в этом видео мы
00:00:11
поговорим с вами о модуле событий
00:00:13
довольно много серверной
00:00:15
функциональности базируется на этой
00:00:18
концепцией события это просто сигнал
00:00:21
который сообщает о том кто что-то
00:00:23
произошло если рассмотреть базовый
00:00:26
пример то при входе пользователя на сайт
00:00:28
происходит его верификация он вводит
00:00:31
свои данные после чего они отправляются
00:00:33
на сервер на это действие можно повесить
00:00:36
обработчик и в случае если такое
00:00:39
произошло отправлять запрос в базу данных для того
00:00:42
чтобы проверить если информация у
00:00:44
пользователя в системе на ответ
00:00:47
сравнивать данные от пользователя и
00:00:49
получены и по результату сделать еще
00:00:52
один обработчик
00:00:53
который либо даст войти либо отправит на
00:00:56
страницу с ошибкой на каждом из шагов
00:00:58
может быть свой прослушиватель событий а
00:01:01
его обработчик
00:01:02
очень наглядно такой подход реализован с
00:01:06
технологией в соке так вот реагирование
00:01:09
на разные действия можно осуществлять
00:01:11
через модуль событий давайте с
00:01:13
импортируем данный модуль в наш файл в
00:01:16
качестве имени я буду использовать event
00:01:19
emitter
00:01:20
так как это общепринятая практика также
00:01:23
вы можете видеть что в отличие от
00:01:25
предыдущих модулей имя константа идет
00:01:28
большой буквы а это значит что ивент
00:01:30
mentre класс на основании которого мы
00:01:33
будем создавать экземпляры для
00:01:35
отслеживания различных событий давайте
00:01:38
это и сделаем
00:01:39
добавим константу emitter которая и
00:01:42
будет являться экземпляром события в
00:01:44
нашем модуле
00:01:45
а теперь мы можем создать какое-то свое
00:01:48
произвольное событие вызвать его
00:01:51
и отреагировать на это базовый синтаксис
00:01:53
создания и слежения за событием выглядит
00:01:57
следующим образом для начала с помощью
00:01:59
метода он мы создаем слежение за
00:02:02
событием первым аргументом передаем имя
00:02:05
события за которым будем следить
00:02:07
это произвольная строка второй аргумент
00:02:10
это кал бег функция внутрь которой в
00:02:13
качестве аргумента мы будем передавать
00:02:15
некий текст и отображать его в консоли
00:02:18
следующий шаг это непосредственно
00:02:21
вызвать события которое мы создали для
00:02:24
этой цели есть метод мид в который
00:02:26
первым аргументом
00:02:28
мы передаем имя нашего события но второй
00:02:31
это данные или как в нашем случае текст
00:02:34
который мы выведем в консоль кстати
00:02:36
обращаю ваше внимание на то что должен
00:02:39
быть именно такой порядок создания и
00:02:41
контроля событий
00:02:42
то есть сначала мы создаем само событие
00:02:45
а затем его вызываем запускаем
00:02:47
исполнения скрипта и в консоли можем
00:02:50
видеть переданный в мид текст однако
00:02:53
передача строки в качестве единственного
00:02:55
аргумента
00:02:56
это не очень распространенный кейс
00:02:58
намного чаще вам скорее всего придется
00:03:01
передавать сразу несколько значений
00:03:02
поэтому проще всего в качестве
00:03:05
передаваемых аргументов использовать
00:03:07
объект как вариант добавим еще более
00:03:10
айди которое будет содержать число а
00:03:13
строку присвоим свойства текст после
00:03:17
чего переименуем аргументы в аркс
00:03:20
внутри функции выполним де
00:03:21
структуризацию значений из аркс и
00:03:24
выведем и в консоль при выполнении
00:03:26
скрипта все по-прежнему работает давайте
00:03:30
рассмотрим еще один пример это
00:03:32
логирование пользователя создадим еще
00:03:34
один файл который назовем лог . джесс
00:03:37
внутреннего опишем совсем небольшую
00:03:40
функцию логирования которое на вход
00:03:42
будет принимать некое сообщение после
00:03:46
чего выводить его в консоль не забываем
00:03:48
создать экспорт данной функции теперь в
00:03:52
этот модуль скопируем event emitter а
00:03:54
также перенесем логику вызова события
00:03:57
так как файл логирование и создан для
00:04:00
данной цели то есть в рб у нас описаны
00:04:03
события за которыми мы следим
00:04:05
а в лоб у нас происходит
00:04:07
непосредственный вызов данных событий
00:04:09
это именно тот механизм который
00:04:12
применяется на реальных проектах а
00:04:14
теперь соответственно нам нужно
00:04:17
импортировать модуль блок-модуль об для
00:04:20
того чтобы вызвать функцию и
00:04:22
соответственно выполнить логирование
00:04:24
используя рик uighar импортируем
00:04:27
созданный модуль после чего просто
00:04:29
вызываем функцию log
00:04:31
которую передаем текст сообщения если мы
00:04:34
запустим созданный скрипт то вы увидите
00:04:37
что в консоли отобразилось только
00:04:39
сообщение
00:04:40
user лорд это непосредственно логика
00:04:43
которая описана функции лог то есть
00:04:46
принятие аргумента и вывод его в консоль
00:04:48
однако у нас не произошел вызов события
00:04:51
сам ивент и консоль не отображает айди и
00:04:55
текст event тест текст то есть не
00:04:58
сработало логика заложенная в эмиттере
00:05:01
если вы хоть немного работали с oubey то
00:05:04
уже догадались в чем заключается
00:05:05
проблема я не случайно в начале урока
00:05:08
упомянул что ивент emitter
00:05:10
это конструктор а соответственно два
00:05:12
экземпляра эмиттер которые есть в обоих
00:05:15
модулях это по сути разные объекты в
00:05:18
результате у нас получилась ситуация
00:05:20
когда сервер используют два разных
00:05:22
событий а именно из-за этой особенности
00:05:25
на реальных проектах вам не придется
00:05:27
работать
00:05:28
event emitter напрямую как мы это
00:05:31
сделали в нашем примере
00:05:32
вместо этого обычно создается класс
00:05:35
который наследуется от
00:05:37
event emitter тем самым получая все его
00:05:39
методы после чего для создания и
00:05:42
слежения за событиями используется
00:05:45
именно этот класс
00:05:46
давайте за implement им описанную логику
00:05:49
переходим file lock . джесс и создаем
00:05:52
класс
00:05:53
называем его лагерь после чего наследуем
00:05:57
от event emitter теперь экземпляр эмиттера
00:06:00
в этом файле нам больше не нужен
00:06:02
следующим шагом в этот класс в виде
00:06:05
метода мы можем перенести функцию log
00:06:08
единственное что нам нужно изменить это
00:06:11
заменить emitter на тэс так как теперь
00:06:14
мы находимся внутри класса который
00:06:15
наследуем от
00:06:16
event emitter поэтому можем обратиться к
00:06:19
его унаследована му методу и мид в
00:06:22
заключении
00:06:23
изменяем экспорт на созданный класс
00:06:26
с учетом изменений которые мы внесли в
00:06:28
модуль нам также нужно обновить и модуль
00:06:31
об импорт эмиттера и создание экземпляра
00:06:34
удаляем они нам больше здесь не нужны
00:06:37
так как вся логика теперь содержится в
00:06:40
конструкторе
00:06:41
лагер обновляем импорт и вот теперь атс
00:06:45
импортированного конструктора
00:06:47
создаем экземпляр лагерь и в качестве
00:06:50
создателя события и его вызова
00:06:52
используем именно этот экземпляр
00:06:55
запускаем выполнение файла и теперь в
00:06:58
консоли мы видим переданное сообщение и
00:07:00
вызванная внутри эмиттера
00:07:02
еще раз в чем была проблема и как мы ее
00:07:05
решили из-за того что ивент emitter
00:07:08
это конструктор для того чтобы
00:07:10
пользоваться событиями нужно создать его
00:07:12
экземпляр
00:07:13
однако такой подход создает именно
00:07:16
множественные экземпляры событий поэтому
00:07:19
разнесение логике по разным модулем
00:07:21
приводит к тому что событие не реагирует
00:07:24
так как должны для решения этой проблемы
00:07:26
от прямого использования event метр
00:07:29
отказываются а вместо этого создает
00:07:32
класс наследник который берет все методы
00:07:34
родителя расширяет его своими кастомными
00:07:37
методами
00:07:38
после чего используют именно экземпляры
00:07:41
данного класса потомка так получается
00:07:44
общая связь событий
00:07:45
кстати вместо классического наследования
00:07:48
которое мы реализовали можно
00:07:51
воспользоваться модулям you tell
00:07:52
для этого мы сначала импортируем его
00:07:55
файл
00:07:56
extend можно убрать теперь у нас
00:07:59
остается чистый класс логгер
00:08:01
с одним методом лог а затем используя
00:08:04
метод insert
00:08:05
мы расширяем данный класс классом event
00:08:08
emitter
00:08:09
то есть по сути делаем тоже самое
00:08:11
наследование оба варианта используются в
00:08:14
разработке
00:08:15
так что выбирайте что удобнее для вас
00:08:18
основная идея в том что абсолютно в
00:08:21
любых модулях с помощью он можно
00:08:24
создавать события а в других с помощью
00:08:27
эммет его вызывать
00:08:29
и это все что планировал вам сегодня
00:08:31
рассказать остались вопросы задавайте в
00:08:34
комментариях ход урока вы найдете в репозитории курса
00:08:37
ссылка в описании увидимся в следующем
00:08:40
видео пока

Описание:

Всех приветствую в курсе «Node.js». В данном видеокурсе мы с вами рассмотрим Node.js, серверную технологию которая позволяет исполнять код написанный на JavaScript вне браузера. Разберём базовые концепции и встроенные модули, которые активно используются при разработке сервера. Рассмотрим механизм коммуникаций между сервером и браузером. Создадим базовый роутинг на чистом Node.js. Подключем Express и перепишем роутер. Научимся работать с динамичными данными с помощью шаблонизатора Node.js. Напишем новостное приложение с поддержкой CRUD операций и хранением данных в MongoDB. Создадим свой API по возврату данных из БД. И в заключение, загрузим готовое приложение на Heroku. ✒ Репозиторий курса: ✔ GitHub: https://github.com/YauhenKavalchuk/node-js ✒ Полный список готовых и планируемых курсов: ✔ Trello: https://trello.com/b/R6rD7qq8 ✒ Автор курса: ✔ YouTube: https://www.youtube.com/YauhenKavalchuk ✔ Instagram: https://www.facebook.com/unsupportedbrowser ✔ Twitter: https://twitter.com/YauhenKavalchuk ✔ VK: https://vk.com/YauhenKavalchuk ✔ LinkedIn: https://www.linkedin.com/in/YauhenKavalchuk ✔ GitHub: https://github.com/YauhenKavalchuk ✔ VK (Группа): http://vk.com/webdevcom ✒ Поддержать развитие канала: https://github.com/YauhenKavalchuk/youtube/blob/main/sponsoring.md

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

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

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

mobile menu iconКак можно скачать видео "Node.js #5 Модуль событий (Event Module)"?mobile menu icon

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

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

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

mobile menu iconКакой формат видео "Node.js #5 Модуль событий (Event Module)" выбрать?mobile menu icon

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

mobile menu iconПочему компьютер зависает при загрузке видео "Node.js #5 Модуль событий (Event Module)"?mobile menu icon

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

mobile menu iconКак скачать видео "Node.js #5 Модуль событий (Event Module)" на телефон?mobile menu icon

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

mobile menu iconКак скачать аудиодорожку (музыку) в MP3 "Node.js #5 Модуль событий (Event Module)"?mobile menu icon

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

mobile menu iconКак сохранить кадр из видео "Node.js #5 Модуль событий (Event Module)"?mobile menu icon

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

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

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