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...
Спасибо, с удовольствием слушаю Ваши уроки : полезный, познавательный контент, информация структурирована, излагается коротко и по существу вопроса, примеры кода наглядные и легко запоминаемые. Автор молодец! Разумеется, хотелось бы и впредь получать такой великолепный материал. Мне зашло)
Благодарю за отзыв)
Дай Бог твоему каналу 1 000 000 просмотров :D
хорошо подано для новичков :)
Спасибо большое за отзыв. Но на канале уже больше 2Млн. просмотров)
@@YauhenKavalchuk на каждое видео)
Круто, очень доступно
Спасибо
Евгений, привет ) Хочу тебе сказать большое спасибо, твои видео очень часто выручают и это не исключение, у меня есть задача и она связана с SSE но я не мог понять как можно сделать подписку на изменения и отправлять клиенту их по условию и теперь все встало на места, я тебе очень благодарен
Всегда пожалуйста
Небольшая поправка оговорки, которая меняет смысл и запутывает: на 8:22 вы сказали "с помощью 'on' можно создавать события". Но правильно будет "с помощью 'on' можно подписываться на события, или еще по-другому: можно создавать обработчики событий"
Спасибо за уточнение
рівень топ
Спасибо)! Хоть и пришлось загуглить что такое «рiвень»)
Спасибо дружище!🤓
Пожалуйста
вы лучший из русскоязычных
Благодарю
Отличный контент всем начинаюищим советую твои видео(И знаешь, все понимают)
Спасибо за поддержку!)
не все. Дискретуризацию аргументов.. че??? очень бегло, быстро не все понятно
@@virgeltapi7055 Кинь ссылку
Я ничего не понял. Слишком быстрый темп.
@@neferpitou2624 Тогда читай документацию с нужным тебе темпом
Вже рік пройшов з момента публікації відео, але в надіїї, що відповісте, все ж таки запитаю: які use case цих еммітерів? Я розумію механізм, але як і для чого це використовувати ніяк не збагну
Дайте ссылку на код, что у вас не получается. В ролике объясняется почему не нужно дублировать require модулей.
1)А почему в log.js файле в пятом строку нет сonst ? (const log = (msg) => {...})
2)И эти уроки которые в ограниченном доступе постепенно будут открываться через некоторое время я правильно понимаю ?
3)А если в log.js в exports добавить emitter, а в app.js удалить четвертую строку и писать в шестом log.emitter.on(....) по моему более коротко и без головной боли
Ответ на 1 вопрос в том , что по стандарту ES6 синтаксис языка позволяет описывать методы у класса именно таким упрощенным способом (без const)
2) верно
3) субъективно, но в принципе, можно
// Вариант 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
Следуя предложению использования 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.
Поэтому наверное надо про эту возможность забыть , раз устарела
Ну да, можно воспользоваться обновлённым синтаксисом extends. Но основной сути урока это не меняет
@@YauhenKavalchuk да, работает и так и так, только совмещение старой стилистики с новой = семантически уже некорректно.
Круто! Но у меня есть вопрос не из видео. Я пытаюсь отключить экземпляр эмитера с помощью метода .off( 'event_name' ), но он почему-то продолжает работать и снова вызывается. Почему?
Не видя кода трудно чем-то помочь
Пишет
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: []
}
Попробуйте сравнить свой код с кодом в репозитории
Академическая информация. Console.log. Объясните лучше, как в node.js обработать событие on change в браузере , как в чистом JavaScript
Данный курс уже закончен. Возможно в будущем будет более углубленное рассмотрение
Непонятно, зачем логгеру триггерить событие в вызывающем модуле, разъясните этот момент, пожалуйста..
Это был пример для урока
Тоже не понял. Если будете обновлять курс, это прям очень странный момент. И так материал достаточно сложный и явно не для начинающих, (в курсе кстати смешаны как базовые понятия, чтоже такое, ip так и предполагается наличие знаний о классах, деструктуризации и чанках), тк еще и пример, который показывает концепт, используемый в боевых проектах, (что уже интересно посмотреть начинающим), делает очень странную штуку, которую можно объяснить, только как этож пример. Я так и не понял для чего, это пока коменты не прочитал. Хотя материал хороший, если уже прочитал пару книг и прошел какой-нибудь обзорный курс вроде стань сеньером за 6 часов, тогда да очень классно. Спасибо!