Кто такой Node.js-разработчик?
Node.js-разработчик — это специалист, который отвечает за написание логики веб-приложений на стороне сервера на языке JavaScript и/или его разновидностях, таких как CoffeeScript, IcedCoffeeScript и т. д. Разработчики Node.js обычно разрабатывают back-end компоненты, связывают приложение с другими (часто сторонними) веб-сервисами и поддерживают front-end разработчиков, интегрируя их работу с приложением Node.js.
Что делают Node.js-разработчики и чем занимаются?
Обязанности на примере одной из вакансий:
- Разработка web-приложения;
- Разработка пользовательского интерфейса;
- Разработка RESTful API;
- Проектирование и разработка backend части приложений;
- Проектирование API;
- Проектирование БД;
- Ревью кода.
Что должен знать и уметь Node.js-разработчик?
Требования к Node.js-разработчикам:
- Знание JavaScript;
- Знание полного цикла разработки: testing, release management, deployment process and etc;
- знание Node.js, React, Express.js, MySQL, Redis, Bull, Docker, Material-UI, Git;
- стремление к развитию и принятию самостоятельных решений;
Востребованность и зарплаты Node.js-разработчиков
На сайте поиска работы в данный момент открыто 3 374 вакансии, с каждым месяцем спрос на Node.js-разработчиков растет.
Количество вакансий с указанной зарплатой Node.js-разработчика по всей России:
- от 105 000 руб. – 1 115
- от 205 000 руб. – 682
- от 305 000 руб. – 278
- от 405 000 руб. – 114
- от 510 000 руб. – 42
Вакансий с указанным уровнем дохода по Москве:
- от 120 000 руб. – 420
- от 225 000 руб. – 280
- от 330 000 руб. – 125
- от 435 000 руб. – 48
- от 545 000 руб. – 20
Вакансий с указанным уровнем дохода по Санкт-Петербургу:
- от 110 000 руб. – 198
- от 210 000 руб. – 127
- от 305 000 руб. – 54
- от 405 000 руб. – 25
- от 505 000 руб. – 10
Как стать Node.js-разработчиком и где учиться?
Варианты обучения для Node.js-разработчика с нуля:
- Самостоятельное обучение – всевозможные видео на YouTube, книги, форумы, самоучители и т.д. Плюсы – дешево или очень недорого. Минусы – нет системности, самостоятельное обучение может оказаться неэффективным, полученные навыки могут оказаться невостребованными у работодателя;
- Онлайн-обучение. Пройти курс можно на одной из образовательных платформ. Такие курсы рассчитаны на людей без особой подготовки, поэтому подойдут большинству людей. Обычно упор в онлайн-обучении делается на практику – это позволяет быстро пополнить портфолио и устроиться на работу сразу после обучения.
Ниже сделали обзор 15+ лучших онлайн-курсов.
15+ лучших курсов для обучения Node.js-разработчика: подробный обзор
1 место. Курс «Node.js» — Skillbox
https://skillbox.ru/course/nodejs/
Стоимость: 22 474 ₽ или рассрочка на 6 месяцев — 3 746 ₽ / мес
Node.js расширяет возможности языка JavaScript и выступает в роли веб-сервера. С помощью этой платформы вы научитесь создавать полноценные веб-приложения и CLI-утилиты — и сможете вырасти как разработчик.
Кому подойдёт этот курс
- Frontend-разработчикам
Вы расширите круг своих компетенций, научитесь разрабатывать и клиентскую, и серверную часть кода — сможете самостоятельно создавать веб-серверные приложения, которые работают в режиме реального времени.
- Backend-разработчикам
Вы освоите Node.js и научитесь писать backend на JavaScript — разберётесь во взаимодействии серверной и клиентской частей кода и станете более востребованным специалистом.
Чему вы научитесь
- Создавать веб-серверные приложения и CLI-утилиты
- Работать с менеджером пакетов npm
- Работать с шаблонами HTML
- Работать с REST API
- Использовать популярные модули Node.js
- Использовать инструменты разработчика для написания, контроля качества, тестирования и отладки кода
- Использовать базы данных PostgreSQL и MongoDB
- Развёртывать проект вручную и в автоматизированных системах
- Работать с HTTP
Программа
Вас ждут онлайн-лекции и практические задания на основе реальных кейсов.
- 11 тематических модулей
- 75 онлайн-уроков
- Подготовка рабочей среды
Познакомитесь с терминалом, Git, VSCode, установите и настроите рабочую среду на Windows, Linux или macOS.
- Hello, world!
Создадите свою первую программу на Node.js, узнаете о конфигурационном файле package.json и установке зависимостей, научитесь пользоваться специальным шаблоном для быстрого старта проекта.
- Решаем базовые задачи
Узнаете, как работать с файловой системой, создавать веб-сервер и обрабатывать HTTP-запросы, посылать запросы к сторонним сервисам. Изучите полезные встроенные и сторонние модули.
- Асинхронный код
Поймете, что такое асинхронность и почему она важна, изучите основные подходы к организации асинхронного кода (callbacks, Promises, async/await), узнаете про библиотеку Bluebird.
- js
Познакомитесь с популярным веб-фреймворком Express.js. Научитесь работать с рендерингом HTML, REST API, загрузкой файлов, авторизацией и аутентификацией.
- Реляционные базы данных
Изучите работу с реляционными базами данных на примере PostgreSQL.
- Нереляционные базы данных
Изучите работу с нереляционными базами, их особенности и применение. Научитесь работать с MongoDB.
- CLI (Command Line Interface) программы
Научитесь создавать CLI-утилиты с помощью Node.js.
- Углубляем теорию
Изучите продвинутые темы: жизненный цикл процесса, event loop, работа с Buffer, streams, генераторы и итераторы, HTTPS.
- Real-time & WebSockets
Узнаете, что такое real-time приложения, какие есть подходы к их реализации. Научитесь работать с протоколом WebSocket.
- Pro tips
Получите полезные практические советы и инструменты для эффективной отладки, тестирования, развёртывания проекта.
- Дипломный проект. Сервис личных заметок
Вы создадите серверную часть для сервиса личных заметок. Реализуете авторизацию, REST API, взаимодействие с базой данных — и развернёте проект на хостинге.
2 место. Курс «Backend-разработка на Node.js» — Нетология
https://netology.ru/programs/nodejs
Стоимость: 24 850 ₽ или рассрочка на 12 месяцев — 2 070 ₽ / мес
- Станьте fullstack-разработчиком, зная только JavaScript
- Технология Node.js позволит вам разрабатывать backend для веб-приложений самостоятельно, а язык программирования TypeScript расширит возможности JavaScript для ваших проектов
Программа курса
Введение в Node.js
Вы познакомитесь с рабочей средой Node.js и инструментами разработки. По итогам модуля вы создадите консольное приложение для обработки файлов с помощью потоков.
- Особенности работы с Node.js, установка и настройка рабочей среды
- Менеджер пакетов
- Работа с консолью, циклы событий, асинхронность
- Модули Node.js и инструменты разработки
- Стримы (потоки)
- js HTTP-module. HTTP-stream. Встроенный низкоуровневый веб-сервер
Библиотека Express.js
Познакомитесь с библиотекой Express.js, развернёте приложение на сервере, освоите Docker, подключите базу данных MongoDB для хранения данных и Passport.js для аутентификации пользователей, настроите обмен данными между клиентом и сервером — с этим помогут websocket и socket.io.
- Библиотеки Node.js для веб-разработки. Express.js
- Паттерн «цепочка обязанностей»
- Шаблонизаторы. Отрисовка контента (рендер на сервере). Библиотеки Express.js
- Развёртывание приложения на сервере (heroku)
- Docker, установка и настройка. Контейнеризация приложения
- Сравнение реляционных и объектно-ориентированных БД
- Запуск локальной MongoDB в Docker. Подключение MongoDB в Тode.js-приложение
- Аутентификация. Passport.js
- Realtime взаимодействие с сервером, протокол websocket. Библиотеки ws и socket.io
Приложение для доставки
Вы создадите сайт доставки и чат для общения двух людей. Для создания сайта вы разработаете API для аутентификации, управления и просмотра объявлений и websocket-чат. В проекте вы задействуете технологии Node.js, Express.js, Passport.js, MongoDB и Websocket.
TypeScript
Вы освоите статическую типизацию для js кода с помощью TypeScript. На практике будете использовать богатую систему типов, декораторы, enum-ы и другие возможности языка TypeScript. Научитесь настраивать проект с помощью tsconfig.json, использовать eslint для проверки стиля и качества ts-кода. Воспользуетесь всеми возможностями TypeScript для написания надёжных приложений на Node.js.
- js и TypeScript (настройка окружения, возможности)
- Динамическая типизация JavaScript vs статическая типизация TypeScript. Инструментарий tsc, tslint/eslint. Настройка проекта
- Система типов TypeScript. Основные принципы ООП. SOLID
- Библиотека Reflect-metadata. Loc-контейнеры: type-di, inversify
- Перенос и интеграция JS-проекта на примере пройденных материалов
- Организация проекта и кодовой базы. Разделение приложения на слои
Nest.js
Вы изучите фреймворк Nest.js и основные понятия, создадите проект на Node.js, реализуете функциональность из блока TypeScript на модули Nest.js, подключите базы данных (модуль для MongoDB). Научитесь подключать аутентификацию по модулям Nest.js и добавите тестирование кода в свой проект.
- Основные понятия: модули, контроллеры, сервисы. MVC-архитектура
- Погружение в Nest.js: инверсия зависимостей, провайдеры, Middleware
- Подключение базы данных к Nest.js — модулю для MongoDB. Сервисы, репозитории, примеры
- Потоки RxJs
- Валидация и обработка ошибок. Interceptors, pipes
- Аутентификация вjs, Passport.js. Guards
- Тестирование. Библиотека JEST. Unit-тесты, интеграционные и приёмочные тесты
- Вебсокеты в Nest.js
Firebase
Cоздадите аккаунт firebase, внедрите функциональность проекта «Книги» на cloud-функции и подключите облачную базу данных для хранения данных из cloud-функций.
- Cloud Firestore, Realtime Database
- Cloud Functions, Hosting
- Firebase Authentication
Итоговый проект — агрегатор отелей
В конце обучения вы создадите сайт-агрегатор для просмотра и бронирования отелей. Для этого вы разработаете публичный API, API пользователя, API администратора и чат для консультанта. В проекте вы задействуете технологии Node.js, Nest.js, MongoDB и Websocket.
Что умею делать после обучения
- Работать с инструментами разработки Node.js
- Использовать библиотеки и фреймворки Node.js: Express.js, Nest.js
- Писать на TypeScript и использовать инструменты tsc, tslint/eslint
- Подключать и использовать в проекте базы данных (MongoDB)
- Настраивать обмен данными между клиентом и сервером (WebSocket)
- Работать с ПО для автоматизации развёртывания и управления приложениями (Docker)
- Настраивать аутентификацию с помощью Passport.js
- Писать unit-тесты
- Использовать Google Firebase
3 место. Курс «Node.js» — GeekBrains
https://gb.ru/courses/11
Стоимость: разная стоимость
Node.js был создан Райаном Далем (Ryan Dahl), развитием проекта сейчас занимается компания Joyent, крупный провайдер облачных вычислений в США. Серверная среда Node.js состоит из 80% кода C/C++ (ядро) и 20% JavaScript API. Также применяются основные принципы и спецификации CommonJS.
Этот курс создан для тех, кто уже хорошо знает и использует JavaScript на клиенте и хочет научиться программировать на JavaScript на стороне сервера.
Чему Вы научитесь
- Создавать консольные утилиты на Node.js;
- Создавать веб-сервисы с помощью популярного фреймворка Express.js;
- Применять шаблонизаторы для разделения кода и оформления интерфейса в проекте;
- Создавать и использовать различные REST API;
- Использовать в программе веб-сокеты с помощью socket.io.
Что Вы получите
1. Видеозаписи всех онлайн-занятий
2. Методички и практические задания
3. Общение с одногруппниками
4. Сертификат об окончании обучения
Курс «Node.js Developer» — OTUS
https://otus.ru/lessons/node/
Стоимость: 60 000 ₽
Разработка серверных приложений на Node.js с использованием Express, TypeScript, GraphQl, Apollo и Nest.js.
Курс рассчитан на frontend-разработчиков или backend-разработчиков со знанием Javascript.
За 4 месяца вы научитесь:
- разрабатывать бэкенд любой сложности на Node.js с использованием Express, Passport, Jest, GraphQL, Nest.js;
- работать с базами данных MongoDB и PostgreSQL;
- использовать и настраивать CI/CD для своего проекта;
- конфигурировать приложения для production и деплоить на сервер;
- работать с Web Sockets (Socket.IO);
- писать понятный и чистый код на TypeScript.
Также вы получите:
- глубокое понимание архитектуры и дизайна Node.js, V8;
- навыки разработки с TDD;
- понимание и опыт использования TypeScript;
- практические навыки создания GraphQl-сервера с Apollo;
- опыт создания Real-time и CLI-приложений.
Программа обучения
Модуль 1. Особенности Node.js
Тема 1. Введение в Node и NPM
Тема 2. Система Модулей Node.js
Тема 3. Events, Timers, Event Loop
Тема 4. Streams — Errors
Тема 5. Тестирование в Node.js
Тема 6. HTTPS Server
Модуль 2. Web Server с Express
Тема 7. Web Servers
Тема 8. Особенности Express
Тема 9. Введение в MongoDB
Тема 10. REST API с MongoDB
Тема 11. Аутентификация и Безопасность
Тема 12. Другие Особенности Web Server
Тема 13. Real-Time Web Приложения с сокетами
Модуль 3. Node.js на Prod
Тема 14. Отладка и профилирование Node.js
Тема 15. Управление процессами с Node.js
Тема 16. TypeScript — теория и практика
Тема 17. TypeScript в Node.js
Тема 18. Express с TypeScript
Тема 19. Деплой приложения
Тема 20. Node.js в Docker
Тема 21. Node.js в проде
Тема 22. CLI в Node.js
Модуль 4. Nest.js, TypeScript, GraphQL, Apollo
Тема 23. Начинаем с Nest.js
Тема 24. Работа с PostgreSQL
Тема 25. Особенности Nest.js
Тема 26. Введение в GraphQL
Тема 27. Особенности GraphQL
Тема 28. Создание GraphQL API Сервера
Тема 29. Apollo Client
Модуль 5. Проектная работа
Тема 30. Выбор темы и организация проектной работы
Тема 31. Консультация по проектам и домашним заданиям
Тема 32. Защита проектных работ
Курс «Node.js Серверный JavaScript» — LoftSchool
https://loftschool.com/course/nodejs/
Стоимость: 24 000 р. или в рассрочку от 2 000 р./мес
Программа обучения
Неделя 1 — Введение в Node.js, асинхронность, модули
— Знакомство с командой курса. — Изучаем модули, файловую систему и потоки в Node.js. — Разбираем асинхронность в Node.js.
- Введение в Node.js и настройка рабочей среды
- Модули, файловая система и потоки
- Работа с асинхронностью в Node.js
- Разбор заданий #1
Неделя 2 — Работа с шаблонами, Express.js, Koa.js
— Изучаем принципы работы с шаблонами (шаблонизаторы Ejs, Handlebars, Pug). — Знакомимся с framework Express.js. — Изучаем framework Кoa.js.
- Работа с
- js
- js
- Разбор заданий #2
Неделя 3 — REST API, работа с базами данных
— Разбираем понятие API и изучаем примеры построения простого API. — Рассматриваем работу с реляционными и не реляционными БД на примере PostgreSQL и MongoDB.
- REST
- Работа с реляционными БД (на примере PostgreSQL)
- Работа с нереляционными БД (на примере MongoDB)
Неделя 4 — Сокеты, авторизация, тестирование
— Работа с Websocket. Рассматриваем библиотеку Socket.IO. — Рассматриваем различия авторизации и аутентификации. — Изучаем виды тестов (на примере Mocha и Chai тестов).
- Сокеты и работа с ними
- Авторизация и аутентификация
- Тестирование
Неделя 5 — Deployment
— Рассматриваем виртуальные хостинги. Deployment на Heroku с использованием Travis. — Пишем Telegram-бота, учимся работать с node-telegram-bot-api. — Выбираем framework для реализации выпускного проекта.
- Deployment и все, что с ним связано
- Процесс написания ботов
- Разбор заданий #3
Неделя 6 — Серверный рендеринг
— Рассматриваем принципы серверного рендеринга. — Разбираем преимущества и недостатки SPA. — Завершаем работу над выпускным проектом.
- Серверный рендеринг
Отзывы на сайте.
Курс «Node.js» — Learn.JavaScript
https://learn.javascript.ru/courses/nodejs
Стоимость: 19000₽
Основные темы курса:
- Фундаментальное понимание Node.js: важные встроенные и сторонние модули, потоки.
- Работа с базой данных MongoDB (с другими базами она устроена аналогично).
- Веб-сервисы и обычные страницы для обработки сетевых запросов.
- Авторизация, в том числе через соц. сети.
- Непрерывное соединение и общение при помощи Websockets.
- Тестирование: unit-тесты, функциональное и e2e тестирование.
- А также ряд других аспектов, которые не так заметны, но тоже важно сделать правильно: конфигурация, логи, обработка ошибок, роутинг и т.п.
Программа
Занятия проходят онлайн два раза в неделю.
Собрание
Первая встреча традиционно является собранием. На нём мы знакомимся, проверяем подключение, обсуждаем организационные вопросы, взаимодействие с преподавателем, как учиться на курсе.
Фундаментальный Node.js
Изучим, как устроен Node.js, его внутреннюю архитектуру и основные приёмы разработки.
- Настройка окружения для разработки.
- Прием и обработка HTTP-запросов.
- Организация кода Node.js-приложения: модули в старом (commonjs) и новом (ES modules) синтаксисе.
- Отладка процесса Node.js: скрипты, утечки памяти.
- Жизнь и смерть Node.JS-процесса, событийный цикл. Макротаски и микротаски, особенности работы в Node.js.
- HTTP-сервер, асинхронная модель Node.js.
Потоки данных
Потоки данных в Node.js используются при приёме и отправке multipart-форм, файлов, больших запросах к базе данных и во многих других ситуациях.
Когда разработчики переходят от обычного JavaScript к Node.js, у них всегда возникают сложности с потоками, поэтому мы уделяем им особое внимание.
- Потоки для чтения, записи и преобразования данных. Область применения потоков, их правильное использование.
- Внутреннее устройство потоков: буферизация данных, события, методы управления потоками.
- Тип данных Buffer для бинарных данных.
- Передача данных из потока в поток, обработка ошибок в цепочке.
- Последние изменения и улучшения: потоки в Node.js постоянно меняются, мы даём самую последнюю версию.
Юнит- и функциональное тестирование
Автоматизированное тестирование используют почти во всех проектах, хотя и в разном объёме. Если его правильно применять, оно делает разработку надёжнее и проще.
- Типы тестирования, архитектурное устройство тестовых фреймворков, отличия, инструментарий.
- Написание юнит-тестов при помощи Mocha и Sinon, для тестирования классов и функций.
- Написание функциональных тестов HTTP-сервера для проверки полного цикла работы.
По окончанию этого занятия вы понимаете, как разрабатывать на Node.js, как делать сервер и правильно обрабатывать запросы, автоматически тестировать свой код.
Серверные фреймворки, Koa.js
Фреймворки облегчают написание приложений, за счет реализации типичных задач, стоящих перед разработчиком.
- Принципы устройства широко распространённых фреймворков на Node.js: express.js и koa.js (новое поколение express).
- Создаём простой сервер на koa.js.
- Архитектура вложенных middleware, приём проектирования “цепочка обязанностей”.
Реализация основных задач:
- Обработка запросов, роутинг.
- Логирование.
- Обработка ошибок.
- Чтение больших POST-запросов.
- Отдача статических файлов.
- Конфигурация приложения в разных окружениях.
Базы данных
Базы данных, такие как MongoDB, MySQL, Oracle и другие, хранят все данные нашего приложения: товары, пользователей и так далее, и позволяют быстро искать среди них. Они используются почти во всех современных приложениях, исключая самые простые.
- Общие принципы работы с базами данных:
- SQL на примере PostgreSQL,
- NoSQL, используя Mongodb,
- Поиск по тексту с морфологией на Elasticsearch
- Для проекта будем использовать mongodb, поэтому изучим ключевые особенности работы с этой базой.
- Создание REST API для работы с пользователями при помощи MongoDB и Koa.js
- ООП при помощи Mongoose: модели, запросы, схемы, валидация и плагины.
- Создание, сохранение и поиск пользователей в базе.
- Индексы для быстрого поиска.
- Валидация, обработка ошибок
Пользователи, авторизация
Авторизация для пользователей необходима практически в каждом приложении.
- Принципы безопасного хранения паролей, использование криптографических алгоритмов для генерации хэшей.
- Регистрация, вход и выход из приложения.
- Пользовательские сессии (cookie для браузера, jwt для микросервисов).
- Использование библиотеки passport.js, которая предоставляет готовые модули авторизации. Создание и подключение OAuth 2.0 стратегий на примере социальной сети vkontakte (по желанию можем рассмотреть и другие).
- Создание серверной части для фронтенд-приложения:
Фронтенд-часть на React.js уже написана.
- Веб-сервисы для авторизации.
Улучшаем приложение
- Шаблонизация (модуль pug).
- Email: отправка, важные нюансы (внешние сервисы, защита от спама, инлайнинг стилей, картинки).
- CSRF-защита от взлома для форм и AJAX.
- Архитектура сложных приложений:
- Вложенный роутинг
- Организация файлов и модулей проекта.
- Интеграционное тестирование: написание скриптов, которые управляют браузером, позволяют автоматически открыть страницу, залогиниться, добавить товар в корзину и оплатить его.
После этого занятия вы умеете создавать сервер для SPA или обычного приложения с веб-сервисами, тестами, авторизацией.
При желании можно дописать к нему новые сервисы, архитектура и ваши навыки легко позволяют это.
Чаты, непрерывная подгрузка и обмен данными
Способы поддержки непрерывного соединения с сервером и получения новых данных: нужно для создания чата, онлайн-игр и других интерактивных приложений.
- Основные приёмы и техники, их плюсы и недостатки, область применения: Long polling, Server Sent Events, Websockets.
- Используем Websockets (при помощи socket.io) для непрерывных соединений.
- Единая авторизация, интеграция websocket с приложением.
- Реконнект, отслеживание состояния соединения.
- Кластеризация при высоких нагрузках.
Развёртывание и запуск приложения
На этом занятии мы обсудим важнейшие вопросы, касающиеся запуска и обновлений готового приложения на сервере, в “боевом” окружении.
- Запуск и поддержание работы приложения.
- Плавное обновление (рестарт без потери соединений и без даунтайма).
- Миграции базы данных.
- Мониторинг.
- Менеджмент логов.
- Примеры развёртывания:
- Heroku с github-интеграцией
- Тестирование с travis-ci
- Хранение и использование секретных ключей.
После этого занятия вы понимаете в деталях весь цикл разработки приложения: не только написания кода, но и релиза, организации логов и запуска на сервере.
Занятие на дополнительные темы, нужные группе
Несмотря на то, что курс является наиболее полным и покрывает все основные темы, касающиеся разработки и запуска веб-приложений на Node.js — всё равно есть темы, которые не вошли в программу курса, но обсудить их хочется.
Это занятие отведено специально для них и строится целиком и полностью на ваших вопросах. Можем обсудить как чисто технические вопросы, например преимущества и недостатки микросервисной архитектуры или отличия протокола REST от GraphQL, так и нетехнические — например, из каких источников можно получать новую информацию.
Курс «NodeJS» — WebDev с нуля. Канал Алекса Лущенко
https://www.youtube.com/playlist?list=PLM7wFzahDYnHYn81-oqavYIp6vaEd5gdH
Стоимость: бесплатно
Изучаем Backend разработку с Node.js. Работаем с серверами, файлами, базами данных. Изучаем асинхронный и синхронный подход.
- для тех, кто хочет начать бекенд разработку
- Как учиться на курсе Node.js. Правила курса
- Установка и первая программа
- Дебаг программ на Node.js
- Передача параметров в Node.js
- Читаем папки и файлы. Создаем файлы.
- Читаем и пишем CSV и JSON файлы в Node.js
- Получение GET и POST запросов на Node.js
- Подключение к базе данных MySQL в Node.js
- Роутинг на Node.JS
- Последовательные запросы в базу данных на Node.js
- Последовательные запросы в базу данных на Node.js
- Модули Node.js, require
- Проект на pure Node.js — загрузка файлов на сервер # 1
- Загрузка файлов на сервер. Часть 1
- Загрузка файла на сервер на чистой Node.js ( часть 2)
- Загрузка файлов на Node.js ( часть 5)
- Сохраняем данные из формы в базу. Sequelize. Node.js
- Сохраняем данные из формы в базу. Sequelize. Node.js
- Установка Node приложений на сервер. Руками #1
Курс «Node.js. Разработка серверов приложений и API» — html academy
https://htmlacademy.ru/intensive/nodejs
Стоимость: 23 400₽
Программа курса
Раздел 1
Знакомство с платформой
Познакомимся с основами Node.js, настроим редактор кода для отладки и обсудим особенности программирования на стороне сервера. Научимся создавать и запускать приложения в консоли, передавать им параметры. Познакомимся с практической стороной отладки.
Основы Node.js.
Модули.
- Введение в модули.
- Встроенные модули.
- Менеджер пакетов npm.
Command Line Interface.
Отладка приложения.
- Отладка в редакторе.
- Отладка в консоли.
Свернуть / Развернуть
Раздел 2
Асинхронность
Продолжим знакомиться с платформой Node.js. Разберём на практике как работает Event Loop и асинхронность. Узнаем, как правильно писать и управлять асинхронным кодом. Познакомимся с протоколом HTTP и напишем первый сервер.
Свернуть / Развернуть
Раздел 3
Express.js
В этом разделе мы начнём проектировать API. Обсудим теоретическую часть проектирования API: что следует учитывать во время проектирования, примеры плохого и хорошего API, версионирование API. Затем обсудим как Node.js может выступать в роли веб-сервера и обрабатывать запросы от клиентов. Подключим фреймворк Express.js и узнаем как он может упростить задачу разработки API.
Свернуть / Развернуть
Раздел 4
Логирование и тестирование
В этом разделе мы поговорим о тестировании приложений на Node.js. Узнаем, что следует тестировать и какие есть особенности тестирования приложений, созданных на платформе Node.js. Подготовим окружение для тестирования и попрактикуемся в написании тестов.
Свернуть / Развернуть
Раздел 5
Введение в базы данных. PostgreSQL
Любому приложению требуется где-то хранить данные. Они могут храниться в разных источниках: файлы, базы данных и т.д. Базы данных применяются особенно часто. В этом разделе разберём какие бывают базы данных, чем они отличаются. Научимся проектировать структуру базы данных и познакомимся с языком запросов (SQL).
Свернуть / Развернуть
Раздел 6
PostgreSQL и Node.js
Научимся взаимодействовать с PostgreSQL из Node.js несколькими способами. Начнём с установки соединения с СУБД и отправки запросов на получение/обновление данных из Node.js. Затем обсудим вопросы безопасности (SQL-Injection). А после этого подключим к проекту ORM и посмотрим на работу с базой данных с совершенно новой стороны.
Свернуть / Развернуть
Раздел 7
Аутентификация и авторизация
Разберём термины «аутентификация» и «авторизация». Узнаем чем они отличаются и на практике рассмотрим реализацию аутентификации в приложении. Научимся валидировать данные, полученные от клиента. Познакомимся с механизмом сессий и JWT (JSON Web Token). Обсудим вопросы безопасности: XSS, CSRF.
Свернуть / Развернуть
Раздел 8
Реалтайм
Посмотрим на сервер с другой стороны. Узнаем что из себя представляют приложения реального времени и познакомимся с протоколом WebSocket. Добавим в приложение реалтайма и познакомимся с библиотекой Socket.IO.
Свернуть / Развернуть
Раздел 9
Деплой. Доставка и запуск приложения на сервере
Разберём вопросы, связанные с доставкой приложения на сервер и запуска в боевой среде. Рассмотрим настройку менеджера процессов, обратного прокси-сервера (Nginx) и мониторинг ошибок. Научимся доставлять приложение на сервер (Heroku, VDS).
Курс «Node Js» — coursera
https://ru.coursera.org/courses?query=node%20js
Стоимость: разная стоимость
- Full-Stack Web Development with React
- Server-side Development with NodeJS, Express and MongoDB
- IBM Full Stack Cloud Developer
- Full Stack Web Development with Angular
- Building Modern Node.js Applications on AWS
- Web Applications for Everybody
- HTML, CSS, and Javascript for Web Developers
- Debugging support for the Node.js runtime in VScode
- JavaScript, часть 2: прототипы и асинхронность
- Developing Cloud Apps with Node.js and React
- JavaScript, jQuery, and JSON
- Desarrollo del lado servidor: NodeJS, Express y MongoDB
- Aprendiendo a hacer API con Node.JS
- AWS Elastic Beanstalk: Build & Deploy a Node.js RESTful API
- E-Commerce Payments Using Stripe and NodeJS
- Build a RESTful API(Node.js) using AWS Lambda & API Gateway
Курс «Node.Js» — Udemy
https://www.udemy.com/ru/topic/nodejs/
Стоимость: разная стоимость
Студенты, изучающие тему «Node.Js«, также изучают
- MongoDB
- Express Framework
- JavaScript
- React
- Веб-разработка
- Angular
- API
- MERN Stack
- Redux Framework
- Комплексная веб-разработка
- TypeScript
- REST API
- Vue JS
- Верстка веб-страниц
- Разработка веб-приложений
- CSS
- RESTful API
- GraphQL
- Node JS. Практический курс. (Mongo, GraphQL, MySQL, Express)
- Основы Node JS
- The Complete Node.js Developer Course (3rd Edition)
- Learn and Understand NodeJS
- Angular & NodeJS — The MEAN Stack Guide [2021 Edition]
- Node with React: Fullstack Web Development
- js: The Complete Guide to Build RESTful APIs (2018)
- js, Express, MongoDB & More: The Complete Bootcamp 2021
- Node JS: Advanced Concepts
Курс «Уроки Node JS» — itProger
https://itproger.com/course/node-js
Стоимость: бесплатно
Навигация по курсу
- Уроки Node JS / #1 — Что такое Node JS и Express?
- #2 — Движок V8 и глобальные объекты
- #3 — Функции, модули и директива require()
- #4 — Множественный вывод из модуля
- #5 — Отслеживание событий в Node
- #6 — Написание и чтение файлов
- #7 — Работа с директориями в Node JS
- #8 — Работа и создание сервера на Node
- #9 — Работа с потоками в Node JS
- #10 — Функция pipe(), работа с HTML и JSON
- #11 — Маршрутизация (отслеживание URL)
- #12 — Использование пакетного менеджера npm
- #13 — Изучение фреймворка Express
- #14 — Использование шаблонизатора
- #15 — Статические файлы и промежуточное ПО
- #16 — Создание HTML-формы и получение данных
- #17 — Получение данных из URL. Заключительный урок
Курс «JavaScript. Уровень 5. Серверное программирование на Node.js» — «Специалист» при МГТУ им.Н.Э.Баумана
https://www.specialist.ru/course/node
Стоимость: 24 490 рублей
Вы научитесь
- создавать веб-сервер;
- создавать динамическое веб-приложение;
- использовать технологии, позволяющие передавать и получать данные без перезагрузки страницы;
- использовать сеансы для сохранения состояния веб-приложения;
- использовать документо-ориентированная систему управления базами данных MongoDB;
- осуществлять безопасную авторизацию пользователя.
Программа курса
Модуль 1. Основы Node.js (2 ак. ч.)
- Что такое Node.js
- Установка Node.js
- Обзор V8 JavaScript Engine
- Как работает Node.js
- Чтение файлов
- Создание веб-сервера
- Использование веб-сервера
- Лабораторная работа: Создание и использование веб-сервера
Модуль 2. События (2 ак. ч.)
- События JavaScript
- События http-сервера Node.js
- Лабораторная работа: Использование событий http-сервера
- Пользовательские события Node.js
- Лабораторная работа: Использование пользовательских событий
Модуль 3. Потоки (2 ак. ч.)
- HTTP-метод POST
- Использование cURL
- Способы обработки запроса
- Чтение из файла и запись в файл
- Загрузка файла на сервер
- Лабораторная работа: Использование потоков
Модуль 4. Модули (2 ак. ч.)
- Использование модулей
- Как создать модуль
- Лабораторная работа: Использование модулей
- NPM — Node Packaged Modules
- Описание модуля
- Основные команды NPM
Модуль 5. Фреймворк Express (4 ак. ч.)
- Фреймворк Express
- Установка Express
- Базовое использование Express
- Использование шаблонизаторов
- Полезные модули
- Лабораторная работа: Использование фреймворка Express
Модуль 6. Веб-сокеты (4 ак. ч.)
- Клиент – сервер: XHR vs WebSocket
- Модуль Socket.IO
- Совместное использование модулей Express и Socket.IO
- Лабораторная работа: Чат с использованием Express и Socket.IO
Модуль 7. Элементы веб-приложения. Практикум (8 ак. ч.)
- REST API
- Создание каркаса приложения
- Использование шаблонизатора
- Использование MongoDB
- Использование сеансов
- Маршрутизация
- Аутентификация пользователя
Курс «Node.js-программист» — Hexlet
https://ru.hexlet.io/programs/backend
Стоимость: $39/месяц
Учим необходимому
JavaScript
Node.js – платформа для запуска кода на языке JavaScript. Именно его предстоит учить
HTML и CSS
Языки создания веб-страниц. Описывают их структуру (расположение блоков) и внешний вид. Отвечают за форматирование текста
Фреймворк (Express, Fastify)
Задает архитектуру проекта. Решает типовые задачи за программиста. Значительно сокращает количество кода и автоматизирует рутину
Алгоритмы и структуры данных
Любая программа — это последовательность шагов, выполняемых над данными. Способ организации данных сильно влияет на удобство работы
Базы данных (SQL)
База данных – сердце любого проекта, они хранят внутри себя все содержимое (данные)
Качество
Автоматизированные тесты — неотъемлемая часть профессиональной разработки
Архитектура
Создание простого для анализа и изменения кода требует хорошего понимания принципов его организации
Инфраструктура
Программирование — это не только код, но и сопутствующие инструменты: командная строка, NPM, Git
Курс «Фундаментальный курс Node.js + Express + MongoDB» — JSExpert
https://www.jsexpert.net/nodejs-course/
Стоимость: от ≈36$/месяц
У вас будет готовый проект через 3 мес!
- экономим ваше время и сылы
- мало теории, много практической работы
- от разработчика с опытом 12+ лет
- выпускной, экзаменационный проект
- сертификат об окончании курса
Программа курса
Вступление в Node.js
- — клиент серверная архитектура
- — ограничения многопоточной модели
- — асинхронное программирование
- — технологии в MEAN стек и что их объединяет
- — эволюция веб к одностраничным приложениям
Архитектура и философия Node.js
- — основные принципы
- — особенности архитектуры
- — событийно-ориентированная модель
Модули в Node.js
- — определение модуля
- — загрузка модулей
- — модуль как инструмент для определения API
Введение и роутинг в Express
- — что такое Express и его основные преимущества
- — как запустить приложение с Express
- — роутинг (основные подходы при определении маршрутов)
Middleware в Express
- — что такое Middleware
- — примеры использования
- — паттерн Middleware (обобщение)
Типы Middleware. Views в Express
- — типы Middleware
- — application level middleware
- — router level middleware
- — error-handling middleware
- — built-in middleware
- — third-party middleware
- — Views (представления)
Express Rest API
- — определение REST
- — характеристики RESTful API
- — ограничения RESTful API
- — единый интерфейс (Uniform Interface)
- — отсутствие состояний (Stateless)
- — кеширование ответа (Cacheable)
- — клиент–сервер (Client-Server)
- — многоуровневая система (Layered System)
- — код по требованию (Code on demand)
Схемы и модели Mongoose
- — что такое Mongoose
- — схемы и их использование
- — модели и их использование
Документы и валидация Mongoose
- — документ и операции над документом
- — валидация – способы и подходы
Запросы в Mongoose
- — использование QueryBuilder
- — выполнение запросов одной командой
Middleware и Population в Mongoose
- — типы Middleware
- — Population
Введение и инсталяция MongoDB. Работа с Mlab и консолью
- — что такое MongoDB
- — Mlab — облачное решение для MongoDB
- — выполнение команд и запрсов в консоли
Модели данных в MongoDB. Запросы и CRUD операции
- — модель документа в MongoDB и дизайн базовой схемы
- — язык запросов и его использование в MongoDB
- — примеры CRUD операций
Агрегация в MongoDB
- — Aggregation framework
- — Pipelines и основные операции
- — примеры
Курс «Node.js» — ITEA
https://onlineitea.com/course/node-js/
Стоимость: 12250 RUB
На курсе ты научишься:
- Создавать свои приложения на Node.js
- Создавать веб-сервисы с помощью популярного фреймворка Express.js
- Применять шаблонизаторы для разделения кода и оформления интерфейса в проекте
- Создавать и использовать различные REST API
- Использовать в программе веб-сокеты с помощью socket.io
Из чего состоит онлайн-курс Node.js:
- Обзор популярных веб-технологий, место node.js среди них
- Node.js core
- Event loop
- Глобальные объекты
- Процессы. Параллелизм в Node.js
- Буфер. Таймер
- События. EventEmitter
- Модули. NPМ
- Работа с файлами. Потоки и асинхронность
- TCP, HTTP и HTTPS серверы
- Web сокеты и модуль ws. Socket.io
- Асинхронный поток. Модуль async
- Node.js и Mongo.db
- Шаблонизатор. Mustache, Jade, EJS
- Веб-каркас для Node.js (node.js web-frameworks)
- Express
- RESTFul app на основы Express
- MVC на node.js
- Тестирование кода на Node.js
- Что такое unit-тестирование?
- TDD/BDD
- Итоги и установки на будущее
Курс «Разработка на NodeJS» — Luxoft
https://www.luxoft-training.ru/kurs/razrabotka_na_nodejs.html
Стоимость: 11 600 рублей
Курс посвящен изучению основ NodeJS, сборщика модулей NPM и фреймворка Express. Также рассматривается работа с файловой системой, базой данных, отладка NodeJS-приложений и работа с протоколом WebSocket.
Разбираемые темы
- Архитектурные принципы NodeJS;
- Менеджер пакетов NPM;
- Система модулей CommonJS;
- NodeJS как веб-сервер;
- Обзор популярных модулей NodeJS;
- Модуль Forever;
- MVC-фреймворк Express;
- Маршрутизация в Express;
- Обработка ошибок;
- Работа с cookie;
- Работа с файловой системой: модуль fs;
- Авторизация в Express;
- Работа с mongodb из NodeJS;
- Отладка NodeJS-приложений
- Использование WebSocket при помощи NodeJS.