Курс по Node.js
Курс для тех, кто ранее не разрабатывал на Node.JS или хочет получить хороший level-up в этой технологии.
Ближайшая группа
О курсе
Этот курс посвящён профессиональной серверной разработке на Node.js.
Мы изучим, как писать современные серверные приложения.
Основные темы курса:
- Фундаментальное понимание Node.js: важные встроенные и сторонние модули, потоки.
- Работа с базой данных MongoDB (с другими базами она устроена аналогично).
- Веб-сервисы и обычные страницы для обработки сетевых запросов.
- Авторизация, в том числе через соц. сети.
- Непрерывное соединение и общение при помощи Websockets.
- Тестирование: unit-тесты, функциональное и e2e тестирование.
- А также ряд других аспектов, которые не так заметны, но тоже важно сделать правильно: конфигурация, логи, обработка ошибок, роутинг и т.п.
Как организовано обучение?
Курс идёт примерно 1.5 месяца.
В августе перерыв, обучение продолжится в сентябре.
До начала обучения: вводные материалы
За неделю до курса мы попросим вам посмотреть видео-лекции по основам Node.js. Они довольно простые, чтобы на первом занятии вы уже что-то знали.
Мы также будем использовать систему Git/GitHub для обмена исходным кодом, так делает большинство проектов. Для тех, кому это в новинку — дадим крэш-курс и поможем разобраться.
Онлайн-занятия с преподавателем 2 раза в неделю
Занятие проходит в формате вебинара. Запись занятия доступна через 15 минут после окончания. Вы также сохраняете доступ к записям после окончания курса.
Домашние задания, обратная связь по ним
Ваши решения присылаете преподавателю, он проверяет качество кода, использование правильных приёмов проектирования, даёт обратную связь.
Чат
Между занятиями доступен групповой чат для общения и вопросов преподавателю.
Курсовой проект
Делаем курсовой проект: интернет-магазин. Большую часть кода для проекта пишете вы.
Результат
Вы хорошо разбираетесь в устройстве Node.JS, разрабатываете и отлаживаете программы на нём.
Вы знаете, как поднять проект малого и среднего размера, чтобы он стабильно работал, не падал, корректно отрабатывал при ошибках.
Вы можете разработать современный веб-сервис на Node.JS с использованием самого последнего стандарта JavaScript и фреймворков.
Сертификат
По окончанию курсов вы получаете сертификат в электронном виде на русском и английском языках.
Хотя сертификатам в нашей профессии обычно не придают значения. Главное — знания и умения, которые вы получите, если будете полноценно участвовать в курсе.
![]()
Программа
Занятия проходят онлайн два раза в неделю.
Собрание
Первая встреча традиционно является собранием. На нём мы знакомимся, проверяем подключение, обсуждаем организационные вопросы, взаимодействие с преподавателем, как учиться на курсе.
Фундаментальный 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 и другие, хранят все данные нашего приложения: товары, пользователей и так далее, и позволяют быстро искать среди них. Они используются почти во всех современных приложениях, исключая самые простые.
- Общие принципы работы с базами данных:
- NoSQL, используя Mongodb,
- Поиск по тексту с морфологией на Elasticsearch
- ООП при помощи Mongoose: модели, запросы, схемы, валидация и плагины.
- Создание, сохранение и поиск пользователей в базе.
- Индексы для быстрого поиска.
- Валидация, обработка ошибок
Пользователи, авторизация
Авторизация для пользователей необходима практически в каждом приложении.
- Принципы безопасного хранения паролей, использование криптографических алгоритмов для генерации хэшей.
- Регистрация, вход и выход из приложения.
- Пользовательские сессии (cookie для браузера, jwt для микросервисов).
- Использование библиотеки passport.js, которая предоставляет готовые модули авторизации. Создание и подключение OAuth 2.0 стратегий на примере социальной сети vkontakte (по желанию можем рассмотреть и другие).
- Создание серверной части для фронтенд-приложения:
-
Фронтенд-часть на React.js уже написана.
- Веб-сервисы для авторизации.
Улучшаем приложение
- Шаблонизация (модуль pug).
- Email: отправка, важные нюансы (внешние сервисы, защита от спама, инлайнинг стилей, картинки).
- Архитектура сложных приложений:
- Вложенный роутинг
- Организация файлов и модулей проекта.
После этого занятия вы умеете создавать сервер для SPA или обычного приложения с веб-сервисами, тестами, авторизацией.
При желании можно дописать к нему новые сервисы, архитектура и ваши навыки легко позволяют это.
Чаты, непрерывная подгрузка и обмен данными
Способы поддержки непрерывного соединения с сервером и получения новых данных: нужно для создания чата, онлайн-игр и других интерактивных приложений.
Развёртывание и запуск приложения
На этом занятии мы обсудим важнейшие вопросы, касающиеся запуска и обновлений готового приложения на сервере, в “боевом” окружении.
- Запуск и поддержание работы приложения.
- Плавное обновление (рестарт без потери соединений и без даунтайма).
- Миграции базы данных.
- Мониторинг.
- Менеджмент логов.
- Примеры развёртывания:
- Heroku с github-интеграцией
- Тестирование с travis-ci
После этого занятия вы понимаете в деталях весь цикл разработки приложения: не только написания кода, но и релиза, организации логов и запуска на сервере.
Занятие на дополнительные темы, нужные группе
Несмотря на то, что курс является наиболее полным и покрывает все основные темы, касающиеся разработки и запуска веб-приложений на Node.js — всё равно есть темы, которые не вошли в программу курса, но обсудить их хочется.
Это занятие отведено специально для них и строится целиком и полностью на ваших вопросах. Можем обсудить как чисто технические вопросы, например преимущества и недостатки микросервисной архитектуры или отличия протокола REST от GraphQL, так и нетехнические — например, из каких источников можно получать новую информацию.
Курсовой проект
- С товарами в базе данных, сгруппированными по категориям.
- С возможностью поиска по товарам.
- С аутентификацией и регистрацией пользователей.
- С чатом поддержки.
- А также с отсылкой почты и другим функционалом, важным для реальных проектов.

Предварительные требования
- Знание JavaScript, включая ООП, классы.
- Понимание браузерного JavaScript/HTML/CSS (клиентский код писать не понадобится, этот курс про серверный JS).
- Интернет 256kb/s или быстрее для видео.
Преподаватель

Сергей Зеленов Ведёт курс с 28 июня 2016
Автор программы курса по Node.JS, а также автоматизированного задачника. Занимаюсь профессионально разработкой веб-приложений с 2009 года, а с 2013 в основном использую Node.JS.
Являюсь главным разработчиком распределенной системы хранения и обработки больших данных для машинного обучения в режиме реального времени в компании SO1.
Также разрабатываю платформу learn.javascript.ru: локализации движка, разработка мультиязычного поиска, а также создал автоматизированную систему проверки задач для разных курсов поверх Github и TravisCI.
Основное внимание в обучении уделяю фундаментальным вещам а также тому, как писать архитектурно грамотный, качественный и тестируемый код.
Что говорят о курсе участники?
Мы занимаемся обучением с 2007 года. За это время у нас обучились тысячи разработчиков из разных стран и компаний.
Все отзывы являются честными. Мы не модерируем их.
Node.js: что это и как изучить технологию?
Решили изучать Node.js? Смело приступайте к обучению, если у вас есть минимальные знания HTML, CSS, Javascript и базовое понимание основных принципов веб-разработки. Полным новичкам в IT мы в GoIT не рекомендуем начинать обучаться работе с этой технологией.
Что такое Node.js?
Node.js – это среда выполнения JavaScript на стороне сервера. И как вы понимаете основное преимущество технологии – разработчики могут использовать один и тот же язык программирования как для front-end, так и для back-end части веб-приложений, над которыми они работают.
Области применения технологии Node.js – это создание и разработка:
- API;
- стриминговых приложений;
- приложений реального времени;
- микросервисов;
- консольных приложений;
- настольных (десктопных) приложений.
Это говорит об актуальности и востребованности изучения технологии Node.js.
Далее я расскажу, как обучиться Node.js – с чего начать самостоятельное изучение и куда пойти учиться, если вы новичок в программировании.
Как изучить Node.js? 4 практических совета
У вас есть 4 способа изучить Node.js.
1. Бесплатные онлайн уроки по Node.js
В интернете есть достаточно много бесплатных видеоматериалов для изучения Node.js. Они размещены на:
- YouTube-каналах,
- торрент-трекерах,
- на сайтах IT-направленности.
Их преимущество – информация находится в бесплатном доступе.
Их недостатки:
- материал часто устаревший и достаточно поверхностный,
- актуальные знания находятся только в англоязычных материалах, а значит, вам потребуется неплохое знание английского языка.
СОВЕТ: чтобы найти актуальную информацию – поищите в интернете форумы IT-специалистов с комнатами “Node.js” или группы в Telegram. В них можно читать ранние переписки и задавать вопросы участникам, чтобы находить ответы на любые вопросы.Юрий Кучма
2. Онлайн курсы по Node.js в интернете
Онлайн курсы по Node.js – самый оптимальный способ изучать технологию самостоятельно.
Относительно недорого купить курсы по Node.js можно на сайтах, вроде udemy.
Их преимущества:
- более актуальная информация, поскольку авторы следят за своими курсами;
- есть курсы на русском языке, но все же лучше учиться по англоязычным материалам.
Их недостатки:
- нужно много гуглить, поскольку в каждом курсе есть “слепые зоны” – отсутствие информации, которую автор посчитал “слишком элементарной” и т.д.;
- нужно понимать английский язык.
3. Книги по Node.js
Книги по изучению Node.js – это классический подход к обучению программированию в этой среде.
Их преимущества:
- актуальная информация, поскольку книги постоянно переиздаются;
- информация в книгах подается комплексно, что улучшает восприятие;
- недорогая цена, по сравнению с курсами.
Их недостатки:
- в некоторых книгах разбирают примеры кода слишком мало;
- “механический” перевод с английского на русский некоторых книг портит впечатление. На первых порах тонкости перевода будут не сильно заметны, но чем больше вы будете узнавать, тем чаще вам будут советовать англоязычную литературу.
Если вы начинающий back-end или full-stack разработчик, и хотите изучить технологию Node.js – я советую прочитать 3 книги.
“Веб-разработка с применением Node и Express. Полноценное использование стека JavaScript” 2-е издание, автор Итан Браун.

Она объяснит логику создания классических веб-приложений.
В книге рассматриваются темы от серверного рендеринга до разработки API для работы с одностраничными приложениями (SPA). За основу берется создание динамического веб-приложения с применением Express – ключевого фреймворка для разработки на Node.js.
Автор подробно показал все основные этапы разработки веб-приложения:
- Шаблонизация
- Маршрутизация и промежуточное ПО
- Работа с основными базами данных: MongoDB и PostgreSQL.
- Аутентификация и авторизация в приложении.
Node.js в действии. Второе издание

Рекомендую именно второе издание, потому что информация в нем отражает практику, с которой ежедневно сталкивается Node.js-разработчик.
Книга дает понимание о построения приложений и основных фреймворках Node.js. Также рассматривается создание веб-приложения на базе Express с нуля. Затронуты темы работы с базами данных, тестирование и развертывание веб-приложений.
Как уже отмечалось выше, технология Node.js используется в сочетании с инструментами командной строки и настольными приложениями, и в книгу включены главы, посвященные этим областям разработки.
Это очень полезно для начинающих разработчиков, так как материала по этим разделам не так много как хотелось бы.
“Разработка веб-приложений с помощью Node.js, MongoDB и Angular: исчерпывающее руководство по использованию стека MEAN”

Книга рассматривает достаточно популярный стек MEAN (MongoDB, Express, Angular, Node).
MongoDB является самой распространенной базой данных типа NoSQL, а Angular – отличный каркас для разработки веб-приложений на стороне клиента по шаблону MVC. Вместе они представляют собой, полностью интегрированный комплекс веб-разработки, разработанный на языке JavaScript: от сервера до клиента.
Сначала книга кратко и ясно описывается каждую технологию по отдельности, а затем уже рассматривается построение типичного веб-приложения.
Также она доступно расписывает функционал основных модулей Node.js и будет хорошим дополнением к документации.
На самом деле, достойных книг по изучению Node.js очень много. Но я выбрал эти 3, поскольку информация в них доступно изложена и они прошли проверку временем – постоянно переиздаются, а значит актуализируют информацию. А это очень важно в этом быстро меняющемся мире IT-технологий.
4. Онлайн-курсы FULLSTACK в GoIT
Если вы изучаете Node.js, чтобы трудоустроиться разработчиком и хотите сделать это как можно быстрее – вам стоит записаться на онлайн-курсы FullStack в GoIT или любую другую компанию, которая предлагает подобные услуги.
- Под руководством опытных менторов вы овладеете нужными навыками в 3 раза быстрее, чем в процессе самообучения.
- Курсы – это систематизированная программа обучения, которая не даст вам заблудиться в лабиринтах информации мира IT. Информация ежемесячно обновляется.
- Благодаря собственной методологии обучения в GoIT, вы выпускаетесь практиком, способным решать рабочие задачи.
Рассмотрим курсы и самообучение на простом примере:
“Даже ребенок может научиться плавать самостоятельно – посмотрит видеоуроки на YouTube и пойдет на ближайший водоем, чтобы просто повторить движения. Но профессиональным пловцом можно стать только на специальных курсах по плаванию. А если тренером будет бывший олимпийский чемпион – при должном усердии можно отправиться на олимпиаду.”
Поэтому, если вы хотите обучиться быстрее и гарантированно устроиться на работу по профессии разработчика – ждем вас на онлайн-курсах FullStack в GoIT.
Хотите получать больше актуальной информации из мира IT – подписывайтесь на наш Telegram-канале Junior Developer и почаще заглядывайте в GoIT Blog.
Спасибо за внимание и до скорых встреч.
Как учить Node.js?
Знаю этот вопрос многих задолбал, но мне бы хотелось спросить именно у серьезных разработчиков, которые глубоко знают ноду и могут дать дельный совет новичку. Как развиваться в данном направлении? На данный момент я фронтендщик(если так можно сказать), знаю нативный js, без проблем пишу без jquery, есть понимание ооп и es6(опять же если можно так сказать), опыта с фреймворками вроде angular или backbone нет. Появилось желание попробовать (если понравится полностью перейти) бэкенд. Вопрос такой: как, что и за чем изучать? Что бы не тыкать пальцем в небо, вот мой список(как я это вижу):
1) Скринкаст Ильи Кантора по Node.js
2) Прочитать одну из трех (или все) книг:
— М. Кантелон , М. Хартер — «Node.js в действии»
— Кирилл Сухов — «Node.js. Путеводитель по технологии»
— Дэвид Хэррон — Node.js. Разработка серверных веб-приложений
3) Пойти на курс от того же Кантора на learn.javascript.ru
В каждом пункте делать как можно больше практики.
Так я вижу путь развития. Просьба поправить меня или написать список, который на Ваш взгляд будет оптимальным для меня. Спасибо.- Вопрос задан более трёх лет назад
- 29162 просмотра
3 комментария
Оценить 3 комментария
Уроки Node JS

Изучение Node JS с нуля / #1 – Введение в Node JS и Express JS для начинающих
Представляем вам курс по изучению платформы Node JS и Express JS с нуля. В курсе для начинающих вы научитесь работать с NodeJS, устанавливать плагины при помощи NPM и разрабатывать веб сайты на основе Express JS.
Видеоурок
Официальный сайт Node JS
JavaScript раньше и сейчас
В самом начале, язык JavaScript вовсе не задумывался как отдельный язык программирования. Его делали как расширение для браузера, которое должно было добавлять пользовательский функционал.
Со временем JS набирал популярность и к нему постоянно добавляли новые функции. Основной задачей языка всегда было разработка пользовательского функционала. К примеру: нужно чтобы при нажатии на кнопку некий блок с информацией был спрятан или передвинут на другое место; или может, наоборот, отображен на странице? Любое подобное действие выполнялось за счет языка JavaScript.
Позже для языка стали делать библиотеки и фреймворки. Тем самым работа с языком гораздо упростилась и стала более быстрой. Библиотеки предоставляли много готовых решений для выполнения стандартных действий. Тот же jQuery добавлял множество готовых функций для создания анимации.
Позже, в 2009 году, сфера применения JS значительно увеличилась. Если ранее язык был только клиентским, то с 2009 года вышла платформа Node JS и язык стал мультифункциональным. Платформа Node JS добавила возможность разработки серверного функционала: работа с базой данных, создание локального сервера, хранения сессий и многое другое.
С тех пор язык JS стремительно набирает популярность. Сегодня используя один язык вы можете прописать как внешнюю часть сайта, так и серверную. Многим такое понравилось и по этой причине язык и платформа Node JS столь популярна на сегодняшний день.
Кстати, из-за того что JS изначально не задумывался как отдельный языком программирования, то по этой причине сегодня он получает много хейта. Его недолюбливают, так как он не придерживается основных шаблонов программирования. Также некоторые странности связанные с этим языком тоже объясняются историей его появления.
Информация про Node JS
Node JS нельзя назвать отдельным языком программирования. Это скорее отдельная платформа, что построена на базе движка V8 и языка C++.
И тут чтобы понять всю суть этой технологии важно понять как вообще работает язык JavaScript. Классический язык JavaScript выполняется в браузере при помощи специального движка. Практические все веб браузеры для обработки языка JavaScript выпустили свой собственный движок.
У Firefox такой движок называется SpiderMonkey, у Internet Explorer был движок Chakra, а у Google Chrome движок V8. Этот движок является просто технологией, что понимает синтаксис языка JavaScript и транслирует его из кода в некие пользовательские действия.

Так вот, в 2009 году некий Райан Даль, основатель платформы Node JS, придумал интересную идею. Он взял сам по себе движок V8, вытянул его из браузера и получил отдельную платформу, что теперь позволяет запускать язык JavaScript из любого места.
То есть если до 2009 года вы могли работать только внутри браузера, ведь там был соотвествующий движок, то теперь вы можете этот движок интегрировать куда угодно и тем самым вы получаете возможно использования языка JavaScript за пределами браузера для любых своих целей.
Возможности Node JS
Получив такую технологию энтузиасты со всего мира создали большое множество всевозможных библиотек для разработки проектов разных жанров. Теперь вы можете на основе языка JavaScript и платформы Node JS строить приложения из разных сфер. Вы можете создать программу под компьютер при помощи библиотеки Electron, написать серверную часть веб сайта на основе Express JS, создать пользовательский API, разработать мобильное приложение при помощи React Native , создать искусственный интеллект и выполнить множество других действий.
Логика проста. Поскольку JS теперь не только браузерный язык программирования, то на его основе вы можете делать все что только захотите.
Ниже список нескольких популярных веб-сайтов на Node JS:
- Всемирная платежная система — PayPal ;
- Один из самых популярных поисковиков мира — Yahoo ;
- Онлайн версия газеты Wall Street Journal ;
- Сеть для сбора лучших фотографий и видео из соц. сетей — Spotify .
Прочитать больше информации про веб сайты на Node можно в нашей статье :
Пакетный менеджер
Node JS также имеет свой пакетный менеджер, что называется npm . Благодаря нему вы можете подключать сторонние библиотеки, запускать локальный сервер и делать ещё множество интересных вещей.
План курса
В ходе курса «N ode JS уроки для начинающих с нуля» мы научимся работать с Node, рассмотрим его синтаксис, создадим несколько простых веб приложений, а также разберемся с фреймворком Express , который был разработан специально под Node JS и является отличным дополнением.
Перед началом просмотра курса стоит изучить HTML и JavaScript . HTML потребуется для написания разметки сайта, а JS понадобиться для написания функций. Все дополнительные курсы вы можете посмотреть на нашем сайте.
Большая программа
Если вас интересует более углубленное изучение построения веб проектов с использованием языка JavaScript и технологии Node JS, то предлагаем вам нашу программу обучения по теме Node JS. В программе вы найдете информацию как по разработке клиентской стороны, так и серверной стороны сайта. Вы можете ознакомиться с этой программой здесь .
