По-настоящему полное руководство по NodeJS
Серверная разработка на JavaScript и очень основательный разбор взаимосвязи пользовательской части с сервером на двух реальных примерах. В курсе предоставлена информация от самых основ, от установки самого NodeJS, до деплоя готового приложения и размещения его на сервере
Очень много практики и готовые работы в портфолио
Кульминацией практической части курса является создание большого статического интернет-магазина и сложного REST API приложения. Повторяя за уроками курса, вы сможете создать с нуля 2 приложения и поместить их в ваше портфолио. А при необходимости – дорабатывать под любые свои нужды, в т.ч. и в коммерческих целях
Вы избавите себя от многих месяцев чтения документации по более чем 10 различным технологиям. Помимо работы самих технологий в курсе рассказывается про то, как они работают вместе. А на эту тему вы вряд ли найдете в едином месте структурированную документацию на русском языке
Средние высокие заработки даже для новичков
Средний уровень зарплат для новичков уровня Junior JavaScript Developer составляет 50-80 тыс. руб. в месяц. NodeJS – это прямой путь в FullStack-разработку. А Full-Stack JavaScript-разработчикам предлагают самый высокий уровень оплаты труда на рынке веб-разработки – 100-120 тыс. руб. и выше
Единый язык JavaScript для Frontend и Backend
Вам не придется изучать множество языков программирования. NodeJS позволяет использовать единый язык JavaScript для написания кода как на стороне клиента (Frontend), так и на стороне сервера (Backend). Вы можете распределить код NodeJS между браузером (Frontend) и вашим сервером (Backend), используя соответствующие технологии
Удобен для построения быстрых приложений
NodeJS удобен для построения быстрых приложений, поскольку способен обрабатывать огромное количество одновременных соединений с высокой пропускной способностью. Это привлекает множество программистов, которые хотят создавать сайты с поддержкой миллионов посетителей на сайте
Для кого создавался курс
Действующие Backend- и Fullstack-разработчики
Поскольку для изучения NodeJS и применения требуются достаточные знания по JavaScript, то основной аудиторией для данного курса будут действующие разработчики среднего уровня. Это программисты, использующие JavaScript в разработке сайтов и приложений, которые уже имеют некоторый опыт и хотят улучшить свое видение области
Фрилансеры-практики
Вы очень ограничены во времени и остро нуждаетесь в быстром овладении новой перспективной технологией для того, чтобы брать более дорогие заказы. Вы хотите понять инфраструктуру полного цикла разработки. Нуждаетесь в быстром, но глубоком освоении среды NodeJS на практике: от установки самого NodeJS, до деплоя готового приложения на сервере
Введение
В видео Вы узнаете про автора, про курс, про то, что вам потребуется знать для прохождения данного курса и дальше узнаете, в каком порядке и как проходить блоки курса.
В видео рассказано про то, что такое Nodejs, почему следует изучать данную платформу и какие преимущества Вы получаете, разрабатывая приложения на Nodejs.
В видео показано как установить Nodejs на компьютер и как убедиться, что программа успешно установлена.
В ролике Вы увидите написание скрипта на платформе Nodejs.
В ролике рассказано, какие редакторы кода лучше использовать, разрабатывая на Nodejs и какой редактор с какими расширениями будет использоваться автором на протяжении курса.
Основы NodeJS
В данном уроке Вы узнаете про то, что такое пакетный менеджер NPM, какие задачи он выполняет и увидите, как с помощью него проинициализировать приложение и установить дополнительные модули.
В ролике Вы увидите, какие глобальные объекты есть на платформе в отличии от клиентского JavaScript и как работает система модулей.
Начиная с данного урока вам будут показаны основные модули, которые встроены в Nodejs. В этом уроке будет рассказано про модуль Path с помощью которого можно очень просто взаимодействовать с путями.
В этом видео будет рассказано, как пользоваться стандартным модулем FS, который предназначен для работы с файлами и папками.
В видео Вы увидите, как пользоваться стандартным модулем OS, который предназначен для того, чтобы определить операционную систему и другие параметры компьютера.
В ролике будет разобран стандартный модуль EVENTS, который предоставляет возможность создавать классы типа EventEmitter, что впоследствии даст лучшее понимание того, как работают некоторые элементы в Nodejs.
В ролике будет разобран новый модуль, с помощью которого возможно создавать свои собственные HTTP-сервера.
В ролике Вы увидите пример создание простого HTTP Web-сервера. В ролике также показано, как работать с параметрами и обрабатывать POST-запросы, конвертируя данные через Buffer.
В видео Вы узнаете, как пользоваться дополнительным инструментом Nodemon, который существенно упростит и ускорит разработку на Nodejs.
В видео показан пример того, как на основе модуля HTTP можно создать простой Web-сервер, работающий с множеством HTML-страниц.
В ролике Вы увидите пример того, как в Nodejs создать простой REST API сервер, работающий с данными в формате JSON.
В заключительном ролике блока Вы узнаете, как работать с консолью в Nodejs и передавать в программу данные, которые Вы введете при запуске приложения.
Практика: Express.js
С этого ролика начнется создание большого приложения – интернет-магазина. В видео Вы узнаете, как подключить Express и настроить его для запуска приложения.
В видео показано, как Express.js работает с файлами, в отличии от обычного модуля HTTP.
Для того, чтобы более эффективно и динамически показывать страницы в приложении необходимо подключить движок, в данном случае будет использован Handlebars. В ролике Вы увидите, как его установить и настроить.
В ролике Вы увидите, как осуществить разбивку на разные элементы Handlebars страниц, чтобы автоматизировать процесс создания новых страниц и уменьшить количество кода.
В ролике будет разобран концепт, который называется Partials и с помощью него будет создана навигация для приложения.
В видео Вы увидите, как в Express передавать различные данные внутрь шаблона и рендерить их в формат HTML.
В ролике будет разобрано, как создавать и регистрировать новые роуты в приложении для большей модульности и декомпозиции файлов.
В видео Вы увидите, как обрабатывать форму, с помощью которой можно создавать новые объекты методом POST.
В текущем ролике Вы увидите, как создавать модель данных без использования базы данных, а с использование файловой системы.
В уроке будет показано, как вывести список курсов, которые до этого были созданы и как реализовать метод у модели, который будет получать список всех курсов из файла данных.
В ролике Вы увидите, как подключать сторонние JavaScript-файлы в приложение, но уже не для серверной части, а для клиентской части. В нем будет написан функционал, который позволит сформировать цену в привычный и удобный формат.
В уроке Вы увидите, как с помощью Express обрабатывать роуты с динамическими параметрами на примере страницы, где будет выводиться детальное отображение отдельного курса.
В видео будет показано, как добавить форму в приложение, которая позволит редактировать уже существующий курс. Помимо этого, будет показано, как работать с Query параметрами.
В ролике будет написан функционал, который подготовит шаблон страницы, где будет реализована корзина товаров для каждого пользователя.
В видео Вы увидите, как реализовать модель корзины, которая будет иметь возможность добавления в нее товаров, удаления и сохранения состояния в отдельном файле.
В ролике Вы увидите, как совместно с моделью вывести актуальные данные из корзины в шаблон для реализации первоначального рендеринга страницы.
В видео будет разобрана возможность работы приложения с асинхронными XHR-запросами для динамического изменения контента без перезагрузки страницы.
В видео Вы увидите, как на основе ответа сервера реализовать динамическое изменение контента страницы корзины: пересчет цены, количества элементов и отрисовка таблицы целиком.
Практика: База данных MongoDB
В ролике Вы увидите, как настроить и подготовить базу данных MongoDB через сервис Mongo DB Atlas.
В ролике Вы увидите, как установить ORM Mongoose, которая позволит взаимодействовать и работать с MongoDB, а также увидите, как ее настроить.
В видео показано, как, используя Mongoose, создавать модели, которые впоследствии будут являться абстрактным слоем при взаимодействии Nodejs и MongoDB.
В видео Вы увидите, как переписать старую модель, которая работала с файловой системой на модель, которая работает с реальной базой данных.
В видео показано, как используя Mongoose-модель реализовать функционал, позволяющий удалить курс из базы данных.
В уроке Вы увидите, как создать модель пользователя, к которой потом будет привязано все в приложении: сессии, курсы, авторизация, корзина и т.д.
В ролике показано, как временно программно создавать одного пользователя для тестирования работы приложения.
В уроке Вы увидите, как исправить работу корзины, уже используя модель базы данных, а не файловой системы, функционал которой уже будет привязан к отдельному пользователю.
В ролике показано, как снова оживить страницу корзины, так как модель данных немного изменилась из-за переноса данных в MongoDB.
В ролике показано, как вернуть функционал по динамическому асинхронному удалению данных из корзины используя базу данных.
В уроке Вы увидите, как с помощью Mongoose написать трансформер, меняющий формат данных поля _id на id для того, чтобы клиентская часть снова работала.
В видео Вы увидите создание HTML-структуры страницы, на которой будут выводиться список заказов, сделанных пользователем.
В уроке показано, как с помощью модели получить список заказов, сделанных пользователем и подготовить роут для отдачи заказов в приложение.
В уроке показано, как на основе полученных данных вывести список заказов в приложении.
Практика: сессии и авторизация
Начиная с данного видео будет показана разработка части авторизации в системе и в этом ролике будет создана страница, отвечающая за вход в систему и создание нового аккаунта.
В ролике Вы познакомитесь с новым концептом в Nodejs – сессиями, которые будут содержать в себе всю необходимую информацию о текущем пользователе.
В ролике Вы увидите, как в сессии содержать полезные данные касательно текущего пользователя и на основе этих данных показывать динамический контент сайта.
Для оптимизации и защиты каждую сессию необходимо хранить в базе данных, поэтому в этом видео Вы увидите, как это сделать в автоматическом режиме.
В ролике Вы увидите, как создать свой собственный Middleware, который позволит защитить любой роут в приложении от неавторизованных пользователей.
Из-за небольшого изменения работы с пользователем, данные которого были перенесены в сессию, необходимо поправить отображение страницы корзины.
В видео Вы увидите, как с помощью страницы регистрации создавать нового пользователя в системе.
В ролике будет реализован функционал по авторизации в системе на основе данных, которые уже реально хранятся в базе данных.
Так как абсолютно не безопасно хранить не зашифрованный пароль в базе данных, то в этом уроке Вы узнаете, как зашифровать пароль при регистрации в одном направлении.
Для большей защиты приложения Вы увидите, как добавить CSRF-защиту.
Для того, чтобы в формах показывать различные сообщения об ошибках, если они есть. Вы увидите, как это реализовать с помощью дополнительного пакета Connect-flash, который может передавать временные сообщения через сессию.
В ролике будет протестирован функционал приложения, которое было написано ранее, чтобы понимать, что пользователи не пересекаются по данным и работают независимо друг от друга.
Практика: работа с Email
В ролике Вы увидите подготовку приложения под дальнейшие изменения, когда будет вынесен объект конфигурации в отдельный файл для большей гибкости управления приложением.
В ролике Вы узнаете, как Nodejs работает с отправкой email писем.
В уроке Вы увидите, как отправлять письма в приложении на примере регистрации в системе.
В видео Вы увидите, как будет написан функционал по восстановлению пароля человека, если он его забыл. На этой странице человек будет иметь возможность написал свой email, получить на почту письмо с ссылкой на восстановление доступа.
Когда человек перейдет с письма по ссылке, и если он пройдет валидацию по токену, то будет иметь возможность изменить свой пароль.
В ролике Вы увидите дополнительную валидацию по смене пароля у человека, и если все хорошо, то будет реализован функционал по хешированию и изменению пароля..
В ролике Вы увидите, как ограничить права доступа пользователям на редактирование и удаление курсов, которые они не создавали. В это будет входить 2 этапа: ограничение визуальных элементов и программных роутов на сервере.
В ролике Вы увидите, как программно защитить возможность удаления новых курсов у пользователей, которые не создавали эти курсы.
Практика: валидация и файлы
В ролике Вы узнаете про то, какой дополнительный пакет потребуется приложению для реализации валидации и как его настроить.
В видео Вы увидите, как полностью отвалидировать все входящие параметры на странице регистрации и показывать ошибки, если такие будут.
В видео Вы увидите, как создавать асинхронные валидаторы, которые позволят декомпозировать логику контроллеров и вынести валидацию в отдельный файл.
В видео Вы узнаете про такой концепт как Sanitizers, позволяющие улучшить обработку поступающей информации на сервер и защитить данные от потенциальных угроз.
В ролике Вы увидите валидацию другой формы в приложении – создании курсов, где будет показана best practice по валидации форм с сохранением данных даже после перезагрузки страницы.
В видео Вы увидите, как реализовать функционал по обработке 404 ошибки в приложении.
В уроке показано, как создать новую страницу в приложении для последующей демонстрации загрузки и сохранения файлов.
В видео Вы увидите, как настроить дополнительный пакет, позволяющий в Express работать с загрузкой файлов. В ролике показано, как настроить процесс сохранения файлов и валидацию.
В видео Вы узнаете, как загружать файлы, как настроить и подключить Middleware созданный в прошлом уроке, а также узнаете, как хранить статические картинки на сервере и сохранять пути в базе данных.
Практика: деплой приложения
В ролике показано, как защитить объект конфигурации, разделив их на две части: конфиг для разработки и продакшн сборки.
В ролике рассматривается дополнительный пакет для Nodejs, который автоматически добавляет большое количество хедеров, защищающих от потенциальных атак.
В ролике показано, как с помощью дополнительного модуля в автоматическом режиме оптимизировать статические файлы.
В ролике Вы увидите какие шаги необходимо выполнить для настройки системы Heroku для бесплатного деплоя приложения на Nodejs.
В ролике Вы увидите, как настроить систему MongoDB Atlas для того, чтобы она корректно работала с Heroku и приложение было запущено на удаленном сервере.
БД MySQL – REST API приложение
С момента записи курса обновилась версия Vuetify и проект может не запускаться
Замените ссылки на следующие:
CSS: <link href="https://cdn.jsdelivr.net/npm/vuetify@1.x/dist/vuetify.min.css" rel="stylesheet">
JS: <script src="https://cdn.jsdelivr.net/npm/vuetify@1.x/dist/vuetify.js"></script>
В этом видео Вы увидите клиентскую часть приложения, написанную на Vue.js и узнаете план на текущий блок.
В ролике будет создан и проинициализирован сервер и будет настроен таким образом, чтобы он всегда отдавал одну и ту же страницу.
В ролике показано, как настроить базовый роутер для приложения для работы REST API.
В ролике Вы узнаете, как установить MySQL на компьютер совместно с дополнительной программой MySQL Workbench для просмотра данных в базе.
В ролике показано как с помощью Sequelize настроить соединение с базой данных MySQL в Nodejs.
В уроке Вы увидите, как создать модель данных для синхронизации данных Nodejs и базы данных MySQL.