Текст площадки «Складчик». Упомянутые цены и обещанные результаты могут быть неактуальны; условия покупки проверяйте у продавца.
Мы научим вас разрабатывать сайты, веб-сервисы и самостоятельные приложения на Node.js, а также хранить и использовать данные в популярных базах данных.
Читать полное описание
Node.js: серверный JavaScript
Мы научим вас разрабатывать сайты, веб-сервисы и самостоятельные приложения на Node.js, а также хранить и использовать данные в популярных базах данных.
В результате обучения и прохождения этого курса вы получите знания, навыки и умения для того, чтобы начать работу junior Node.js-разработчиком
Пройдя курс, вы научитесь
Вести разработку на JavaScript в среде Node.js.
JavaScript теперь используется и как серверный язык разработки. Среда Node.js позволяет любому разработчику, знакомому с JavaScript, начать разрабатывать серверную часть для приложений любой сложности. Начиная с основ, в процессе курса мы рассмотрим самые важные области Node.js.
Использовать технологию WebSocket и библиотеку socket.io.
Приложения реального времени в настоящее время — практически стандарт. Нет никакой необходимости в перезагрузках страницы, и не важно, нужно ли вам написать простенький чат, или высоконагруженный сервис. Сокеты помогут настроить обмен данными между клиентом и сервером с невероятной скоростью.
Разворачивать готовый проект на хостинге.
Для приложений, разработанных в среде Node.js, классический хостинг не подходит. Мы научимся разворачивать ваше приложение прямо из git-репозитория с максимальный комфортом на самых популярных подходящих площадках.
Тестировать свой код.
Тестирование кода — еще один очень важный момент, который нельзя обойти стороной, особенно, когда пишется серверная часть приложения. Написание тестов на существующий код повысит его надежность, а разработка через тестирование практически исключает возможность появления критических ошибок вашего приложения в дальнейшем.
Применять практики серверного рендеринга.
Серверный рендеринг — отнюдь не прихоть, а часто жизненно важный момент вашего приложения. В некоторых случаях, клиентский рендеринг делает SEO-продвижение попросту невозможным, а если вы хотите добиться максимальной скорости работы приложения при огромных количествах посещений, то серверный рендеринг — однозначно, ваш выбор.
Использовать фреймворки Express.js и Koa.js в разработке.
В среде Node.js, помимо модулей и подключаемых библиотек, существуют два замечательных фреймворка, которые значительно облегчают процесс разработки. Более того, некоторые из подключаемых библиотек, написаны именно под фреймворки. Мы рассмотрим два самых популярных и известных фреймворка для разработки в среде Node.js.
Проводить аутентификацию и авторизацию, грамотно хранить персональные данные.
В современном вебе практически не осталось места анонимности, при этом идентификация пользователей — крайне важный момент. Получаемые персональные данные должны храниться надежно и не использоваться без лишней необходимости. Мы рассмотрим лучшие практики и дополнительные библиотеки, облегчающие и повышающие надежность в этой части ваших приложений.
Работать с реляционными и нереляционными базами данных под Node.js.
При разработке серверной части приложения особое внимание стоит уделить работе с данными. Выбор базы данных для проекта — крайне важный процесс, поэтому мы рассмотрим самые часто используемые типы баз данных. Для примера нереляционных баз будет использована MongoDB, для примера реляционных — PostgreSQL.
Введение в Node.js и настройка рабочей среды
Знакомство с преподавателями, наставниками, и одногруппниками
Правила работы с кодом на курсе (линтер и Git, знакомство и работа с NPM)
Настройка рабочей среды, выбор инструментов для разработки и отладки
Основная информация о Node.js (установка и т.д.)
Организационные вопросы.
Модули, файловая система и потоки
Система модулей в Node.js.
Знакомство с основными модулями Path, System, Console, Readline и др.
Работа с файлами
Работа с потоками чтения и записи: pipe()
Примеры работы с потоками. Модули through2 и through2-parallel
Работа с асинхронностью в Node.js
EventLoop в Node.js.
Модуль EventEmitter. Создание и обработка собственных событий
Утилита async
Promises. Модуль mz. Применение promisify
Генераторы
Async/Await
Работа с шаблонами
Основные шаблонизаторы
Рендеринг шаблонов с изменяемыми данными, частичный рендеринг, работа с шаблонами “на лету”
Особенности работы с Pug
Особенности работы с EJS
Особенности работы с Handlebars
Express.js
Знакомство с фраемворком Express.js
Роутинг
Обработка форм и загрузка файлов на сервер
Промежуточное ПО
Отправка электронной почты
Cookie-файлы в Express и сеансы
Koa.js
Установка и начало использования
Маршрутизация и перенаправление
Шаблонизация и работа с файлами
Работа с сессиями с помощью Cookies
Практический пример создания сайта по примеру домашнего задания
REST API
Понятие API
Что такое REST и Restful
Пример построения простого API
Обработка ошибок
Работа с реляционными БД (на примере PostgreSQL)
PostgreSQL - самая популярная реляционная база данных
Настройка и запуск собственной базы данных PostgreSQL на локальном сервере
Основные способы подключения
Связывание базы данных с концепциями объектно-ориентированных языков программирования с помощью ORM Sequelize
Инструменты для работы с данными - PGAdmin
Работа с нереляционными БД (на примере MongoDB)
Mongo DB - самая популярная нереляционная база данных. Отличие реляционных БД от нереляционных
Особенности Mongoose - модели и коллекции
Настройка и запуск собственной базы.
Использование сервиса mLab для дистанционного хранения информации, данных Mongo DB на локальном сервере
Инструменты для работы с данными
Mongo DB в связке с Mongoose - ООП в работе с базой данных, пример API
Сокеты и работа с ними
Начинаем работу с модулем ws
Реализация простого Websocket чата
Библиотека Socket.IO
Простой чат с Socket.IO и Express.js
Пример чата с несколькими комнатами
Авторизация и аутентификация
Авторизация и аутентификация. В чем различие?
Модуль Crypto и пакет bCrypt
Работа с Passport.js
Примеры аутентификации с локальной стратегией Passport.js и GitHub
Использование JWT для авторизации к API
Тестирование
Зачем нужно тестирование
Виды тестов
Тестируем Express приложение
Mocha
Chai
Deployment и все, что с ним связано
Развертывание из Git-репозитория
Автоматизация развертывания
Поддержание работы, максимизация доступности и производительности приложения
Nginx-сервер в связке с Node.js
Практика развертывания приложения на некоторых хостингах (Heroku, DigitalOcean, VDS, C9)
Процесс написания ботов (мастер-класс)
Что такое бот программа
Написание чат-бота под Telegram
Библиотека node-telegram-bot-api
Отправка ботом медиаконтента, видео, музыка, картинки и т.д.
Создание клавиатуры и обработка команд
Серверный рендеринг
Изоморфные приложения — переходим на серверный рендеринг
Преимущества серверного рендеринга
Особенности серверного рендеринга React.js
Особенности серверного рендеринга Vue.js
Практика перехода на серверный рендеринг на примере большой домашней работы
Закрытие курса
Что делать после курса?
Опенсорс
Тематические сообщества