Node.js #11 Node.js & Express (Node.js & Express)
ฝัง
- เผยแพร่เมื่อ 11 ส.ค. 2021
- #YauhenK #webdev #Node #Express
Всех приветствую в курсе «Node.js».
В данном видеокурсе мы с вами рассмотрим Node.js, серверную технологию которая позволяет исполнять код написанный на JavaScript вне браузера. Разберём базовые концепции и встроенные модули, которые активно используются при разработке сервера. Рассмотрим механизм коммуникаций между сервером и браузером. Создадим базовый роутинг на чистом Node.js. Подключем Express и перепишем роутер. Научимся работать с динамичными данными с помощью шаблонизатора Node.js. Напишем новостное приложение с поддержкой CRUD операций и хранением данных в MongoDB. Создадим свой API по возврату данных из БД. И в заключение, загрузим готовое приложение на Heroku.
✒ Репозиторий курса:
✔ GitHub: github.com/YauhenKavalchuk/no...
✒ Полный список готовых и планируемых курсов:
✔ Trello: trello.com/b/R6rD7qq8
✒ Автор курса:
✔ TH-cam: / yauhenkavalchuk
✔ Instagram: / yauhenkavalchuk
✔ Twitter: / yauhenkavalchuk
✔ VK: YauhenKavalchuk
✔ LinkedIn: / yauhenkavalchuk
✔ GitHub: github.com/YauhenKavalchuk
✔ VK (Группа): webdevcom
✒ Поддержать развитие канала: github.com/YauhenKavalchuk/yo...
Спасибо большое за вашу работу! очень доходчиво и наглядно доносится материал 🙏
Пожалуйста
Лайк и коммент в поддержку! Очень хорошая подача информации!
Спасибо
Очень хороший урок!
Благодарю)
спасибо за труд!) очень помогаешь
пожалуйста
Максимально понятно. Спасибо
Пожалуйста
Спасибо за материал, у Express на момент написания сообщения 16,807,903 скачиваний в неделю.
Для разработки небольших проектов, всегда выбираю его, ни разу не имел проблем на production в связи с выбором express.
Да, я тоже удивился когда о express начали негативно отзываться
Что бы подгружались css файлы нужно ещё добавить:
app.use(express.static('your folder'))
перед отправкой html с сервера!
Я об этом рассказал в теме мидлваров
С перва лайк
👍
Очень классный курс, начал сегодня с первого видео и не могу остановиться :)
Скажите пожалуйста, какое у Вас расширение стоит для VSCode, в ситуации когда вы пишите app.get("/", на этом моменте оно само вам предлагает вставить стрелочную функцию с req, res.
Спасибо за ответ :)
Tabnine
Евгений, подскажите пожалуйста, при использовании Express и при роуте на существующие страницы не нужно возвращять 200 через status(200)? Спасибо.
Да, можно не возвращать. Но обычно этот статус говорит о том, что всё корректно отработало
Спасибо за классный урок!
Вопрос: если нужно отдавать одну и ту же страницу (например index.html) для разных урлов (например '/home', 'index.html' и '/', как это с express лучше сделать?
Скорее всего редирект, или отдельные запросы на каждый путь
Можно взять добавить все пути в массив. Вот так например: [‘/’, ’index.html’, ’/home’]
Как все же правильно для SEO указывать имя файлов для рендера: index (без html) или index.html (полностью)? Так app.get('/index', (req, res) => ...) или так app.get('/index.html', (req, res) => ... )? От этого зависит вид гиперссылки во фронте: или . Какие мнения существуют по этому вопросу?
Кажется теперь порядок роутов не имеет значения... Работает и так и так)))
🤔 интересно…
Точніше, не працює ні так, ні так) res.redirect('/') завжди повертає 404 :(
Спасибо за видео. Если подключать express через import (синтаксис ES), то глобальный объект __dirname больше не работает. Пишет "__dirname is not defined". Решил проблему явным указанием пути к рут: path.resolve('./', 'views'...). С подключением express через require работает __dirname (как на Ваших видео). Можете прокомментировать, какой синтаксис все же использовать, современный ECMA6 или ранний с require?
Лучше использовать современный
Извиняюсь за глупый вопрос, так как я новичок но какое отличие между роутингом через экспресс и реакт роутер дом в самом реакте ?
Это 2 абсолютно разных подхода - различий масса. Но самое основное, express - это серверный роутинг, react-router - это роутинг на стороне клиента
@@YauhenKavalchuk спасибо
А еще, express формирует сознание говнокодеров
А можно объяснить?
Если не дадите обоснованного ответа «почему», то комментарий буде удалён
Тимур добрый день почему так
Это же очевидно. Новички не знают как создавать правильную архитектуру проекта, а экспресс и не предлагает этого. Дальше будет невероятное использование мидлваров, в которые накидают всего чего стоило и не нет и будут тягать эти данные между всеми запросами.
1. Экспресс использует паттерн middleware, а если мы поднимем шаблоны проектирования "Банды четырех", то найдем там шаблон "Цепочка обязанностей" (Chain of Responsibility) и внезапно заметим, что middleware это сломанная реализация этого шаблона. Дело в том, что ответственность должна не размываться, а концентрироваться, "Цепочка обязанностей" подразумевает, что только одно звено в цепи берет на себя ответственность за обработку запроса, если звено не берет ответственность, то передает управление следующему звену, ничего не делая. А в милдварах каждый мидлвар может модифицировать состояние и запроса и ответа, что приводит к протекающим абстракциям (leaking abstractions) и состояниям гонки (race conditions, data race).
А что, если нам нужно возвращать файл с базы данных по id в запросе, или возвращать страницу в зависимости от тега языка в начале запроса а также проверять куки и т.д.
Для работы с БД на канале есть отдельный курс по MongoDB
@@YauhenKavalchuk не, про БД я уже увидел в следующих видео (через /:id) а вот про то, что в начале запроса, например /en/home и /home возвращает английский файл, а /ru/home русский, но чтобы мы могли вынести язык в отдельную переменную для подальшей работы с ней.
А почему у меня на 6:38 при redirect всё таки перекидывает на contacts?
Т.е. у меня при введении "about-us" выходит страница "contacts" , и в панельке статус у "about-us" :
Status code: 301 Moved Permanently (from disk cache);
Хотя порядок такой же?
В описании есть ссылка на репозиторий, можете сравнить)
@@YauhenKavalchuk да, сравнил , но там же конечный код, а я именно вот эту ошибку хотел увидеть с about-us.
Status code: 301 кэшируется браузером. Очистите кэш.
А как прописывать путь, например в ?
В следующих видео об этом рассказывается, в контексте использования шаблонизатора
Евгений курс для начинающих или полноценный курс
Для начинающих
А сколько уроков будет всего?
20 уроков
node да и ещё и на js(не на ts) это уже даже не прошлый век а позапрошлый)))
сам создатель ноды учёл все косяки в новом продукте.
Это ваше мнение