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

แชร์
ฝัง
  • เผยแพร่เมื่อ 22 ส.ค. 2024
  • #YauhenK #webdev #Node #Express
    Всех приветствую в курсе «Node.js».
    В данном видеокурсе мы с вами рассмотрим Node.js, серверную технологию которая позволяет исполнять код написанный на JavaScript вне браузера. Разберём базовые концепции и встроенные модули, которые активно используются при разработке сервера. Рассмотрим механизм коммуникаций между сервером и браузером. Создадим базовый роутинг на чистом Node.js. Подключем Express и перепишем роутер. Научимся работать с динамичными данными с помощью шаблонизатора Node.js. Напишем новостное приложение с поддержкой CRUD операций и хранением данных в MongoDB. Создадим свой API по возврату данных из БД. И в заключение, загрузим готовое приложение на Heroku.
    ✒ Репозиторий курса:
    ✔ GitHub: github.com/Yau...
    ✒ Полный список готовых и планируемых курсов:
    ✔ Trello: trello.com/b/R...
    ✒ Автор курса:
    ✔ TH-cam: / yauhenkavalchuk
    ✔ Instagram: / yauhenkavalchuk
    ✔ Twitter: / yauhenkavalchuk
    ✔ VK: YauhenK...
    ✔ LinkedIn: / yauhenkavalchuk
    ✔ GitHub: github.com/Yau...
    ✔ VK (Группа): webdevcom
    ✒ Поддержать развитие канала: github.com/Yau...

ความคิดเห็น • 48

  • @disconnect355
    @disconnect355 3 ปีที่แล้ว +16

    Спасибо, с удовольствием слушаю Ваши уроки : полезный, познавательный контент, информация структурирована, излагается коротко и по существу вопроса, примеры кода наглядные и легко запоминаемые. Автор молодец! Разумеется, хотелось бы и впредь получать такой великолепный материал. Мне зашло)

  • @andygr1n1
    @andygr1n1 3 ปีที่แล้ว +11

    Дай Бог твоему каналу 1 000 000 просмотров :D
    хорошо подано для новичков :)

    • @YauhenKavalchuk
      @YauhenKavalchuk  3 ปีที่แล้ว +2

      Спасибо большое за отзыв. Но на канале уже больше 2Млн. просмотров)

    • @user-us3fy2pd7y
      @user-us3fy2pd7y 2 ปีที่แล้ว +1

      @@YauhenKavalchuk на каждое видео)

  • @dimalukashenko4865
    @dimalukashenko4865 2 ปีที่แล้ว +2

    Круто, очень доступно

  • @Shark956
    @Shark956 ปีที่แล้ว

    Евгений, привет ) Хочу тебе сказать большое спасибо, твои видео очень часто выручают и это не исключение, у меня есть задача и она связана с SSE но я не мог понять как можно сделать подписку на изменения и отправлять клиенту их по условию и теперь все встало на места, я тебе очень благодарен

  • @dmsuslov
    @dmsuslov 2 ปีที่แล้ว +4

    Небольшая поправка оговорки, которая меняет смысл и запутывает: на 8:22 вы сказали "с помощью 'on' можно создавать события". Но правильно будет "с помощью 'on' можно подписываться на события, или еще по-другому: можно создавать обработчики событий"

    • @YauhenKavalchuk
      @YauhenKavalchuk  2 ปีที่แล้ว

      Спасибо за уточнение

  • @ruslan_lwow79
    @ruslan_lwow79 3 ปีที่แล้ว +4

    рівень топ

    • @YauhenKavalchuk
      @YauhenKavalchuk  3 ปีที่แล้ว +5

      Спасибо)! Хоть и пришлось загуглить что такое «рiвень»)

  • @bayalesko7956
    @bayalesko7956 2 ปีที่แล้ว

    Спасибо дружище!🤓

  • @awalton437
    @awalton437 2 ปีที่แล้ว

    вы лучший из русскоязычных

  • @Jdjdjjjxhzh
    @Jdjdjjjxhzh 2 ปีที่แล้ว +1

    Отличный контент всем начинаюищим советую твои видео(И знаешь, все понимают)

    • @YauhenKavalchuk
      @YauhenKavalchuk  2 ปีที่แล้ว +1

      Спасибо за поддержку!)

    • @virgeltapi7055
      @virgeltapi7055 2 ปีที่แล้ว

      не все. Дискретуризацию аргументов.. че??? очень бегло, быстро не все понятно

    • @Jdjdjjjxhzh
      @Jdjdjjjxhzh 2 ปีที่แล้ว

      @@virgeltapi7055 Кинь ссылку

    • @neferpitou2624
      @neferpitou2624 ปีที่แล้ว

      Я ничего не понял. Слишком быстрый темп.

    • @Jdjdjjjxhzh
      @Jdjdjjjxhzh ปีที่แล้ว

      @@neferpitou2624 Тогда читай документацию с нужным тебе темпом

  • @dmytroprokoptsov7185
    @dmytroprokoptsov7185 ปีที่แล้ว +1

    Вже рік пройшов з момента публікації відео, але в надіїї, що відповісте, все ж таки запитаю: які use case цих еммітерів? Я розумію механізм, але як і для чого це використовувати ніяк не збагну

    • @michal2007
      @michal2007 ปีที่แล้ว

      Дайте ссылку на код, что у вас не получается. В ролике объясняется почему не нужно дублировать require модулей.

  • @qwerty-lj6oq
    @qwerty-lj6oq 3 ปีที่แล้ว +1

    1)А почему в log.js файле в пятом строку нет сonst ? (const log = (msg) => {...})
    2)И эти уроки которые в ограниченном доступе постепенно будут открываться через некоторое время я правильно понимаю ?
    3)А если в log.js в exports добавить emitter, а в app.js удалить четвертую строку и писать в шестом log.emitter.on(....) по моему более коротко и без головной боли

    • @HighWayMan444
      @HighWayMan444 2 ปีที่แล้ว +1

      Ответ на 1 вопрос в том , что по стандарту ES6 синтаксис языка позволяет описывать методы у класса именно таким упрощенным способом (без const)

    • @YauhenKavalchuk
      @YauhenKavalchuk  2 ปีที่แล้ว

      2) верно
      3) субъективно, но в принципе, можно

  • @deanwichester6412
    @deanwichester6412 2 หลายเดือนก่อน

    // Вариант 1
    class Logger extends EventEmitter {
    log(msg) {
    console.log(msg);
    }
    error(msg) {
    console.error(msg);
    }
    }
    // Вариант 2
    class Logger extends EventEmitter {
    log = (msg) => {
    console.log(msg);
    }
    }Ребят кто знает почему не первый вариант 7:38

  • @api-nsk
    @api-nsk 2 ปีที่แล้ว

    Следуя предложению использования utils VSC начал зачеркивать ingerits c обоснованием:
    Usage of util.inherits() is discouraged. (Использование util.inherits() не рекомендуется.)
    Please use the ES6 class and extends keywords to get language level inheritance support.
    Also note that the two styles are semantically incompatible.
    Поэтому наверное надо про эту возможность забыть , раз устарела

    • @YauhenKavalchuk
      @YauhenKavalchuk  2 ปีที่แล้ว +1

      Ну да, можно воспользоваться обновлённым синтаксисом extends. Но основной сути урока это не меняет

    • @api-nsk
      @api-nsk 2 ปีที่แล้ว

      @@YauhenKavalchuk да, работает и так и так, только совмещение старой стилистики с новой = семантически уже некорректно.

  • @paveldolgikh2890
    @paveldolgikh2890 ปีที่แล้ว

    Круто! Но у меня есть вопрос не из видео. Я пытаюсь отключить экземпляр эмитера с помощью метода .off( 'event_name' ), но он почему-то продолжает работать и снова вызывается. Почему?

    • @YauhenKavalchuk
      @YauhenKavalchuk  ปีที่แล้ว

      Не видя кода трудно чем-то помочь

  • @zaksdanil4712
    @zaksdanil4712 2 ปีที่แล้ว

    Пишет
    node:internal/modules/cjs/loader:936
    throw err;
    ^
    Error: Cannot find module 'C:\Users\HP\Documents\ApiCode\app'
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
    at Function.Module._load (node:internal/modules/cjs/loader:778:27)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:77:12)
    at node:internal/main/run_main_module:17:47 {
    code: 'MODULE_NOT_FOUND',
    requireStack: []
    }

    • @YauhenKavalchuk
      @YauhenKavalchuk  2 ปีที่แล้ว

      Попробуйте сравнить свой код с кодом в репозитории

  • @Jack-vf1cb
    @Jack-vf1cb ปีที่แล้ว

    Академическая информация. Console.log. Объясните лучше, как в node.js обработать событие on change в браузере , как в чистом JavaScript

    • @YauhenKavalchuk
      @YauhenKavalchuk  ปีที่แล้ว

      Данный курс уже закончен. Возможно в будущем будет более углубленное рассмотрение

  • @tyulina2668
    @tyulina2668 ปีที่แล้ว

    Непонятно, зачем логгеру триггерить событие в вызывающем модуле, разъясните этот момент, пожалуйста..

    • @YauhenKavalchuk
      @YauhenKavalchuk  ปีที่แล้ว +1

      Это был пример для урока

    • @AAndreev1983
      @AAndreev1983 5 หลายเดือนก่อน

      Тоже не понял. Если будете обновлять курс, это прям очень странный момент. И так материал достаточно сложный и явно не для начинающих, (в курсе кстати смешаны как базовые понятия, чтоже такое, ip так и предполагается наличие знаний о классах, деструктуризации и чанках), тк еще и пример, который показывает концепт, используемый в боевых проектах, (что уже интересно посмотреть начинающим), делает очень странную штуку, которую можно объяснить, только как этож пример. Я так и не понял для чего, это пока коменты не прочитал. Хотя материал хороший, если уже прочитал пару книг и прошел какой-нибудь обзорный курс вроде стань сеньером за 6 часов, тогда да очень классно. Спасибо!