Скринкаст NODE.JS
Основные возможности и средства создания веб-сервисов, включая внутренние особенности самого сервера Node.JS
Если вы где-то выкладываете этот скринкаст (торрент и т.п.), то обязательно давайте ссылку на эту страницу, так как все обновления и важные изменения я публикую здесь.
Ниже вы можете ознакомиться более детально с содержанием скринкаста
Не прозевайтекурсы по Node.js!
Вашему вниманию предлагается скринкаст по Node.JS на русском языке.
Его целью не является разбор всех-всех возможностей и модулей Node.JS, ведь многие из них используются очень редко.
С другой стороны, мы очень подробно разберём основные возможности и средства создания веб-сервисов, включая внутренние особенности самого сервера Node.JS, важные для его работы.
Если вы – разработчик, то вам наверняка известно: большинство полезной документации и скринкастов делается на английском.
Конечно, даже на английском много всего устаревшего, приходится порыться, но на русском – всё гораздо хуже. Многого просто нет. Хотелось бы поменять эту ситуацию, хотя бы в плане Node.JS.
Часть 1: Изучаем Node.JS
Выпуски были записаны для Node 0.10.
Каждую запись можно просмотреть или скачать в низком и хорошем качестве.
- Введение в Node.JS, об этом скринкасте
- Что такое Node.JS? Почему Node.JS?
- Установка и запуск
- Исходники и документация
- Модули для Node.JS
- Приёмы работы с модулями
- Введение в NPM - менеджер пакетов для Node.JS
- Структура пакета NPM
- Глобальные модули
- Модуль util и наследование
- Модуль console
- Наследование от ошибок Error
- События, EventEmitter и утечки памяти
- Node.JS как веб-сервер
- Эхо-сервер на Node.JS
- Документация к модулю http
- Разработка, supervisor
- Отладка скриптов под Node.JS
- Логирование, модули debug и winston
- Введение в асинхронную разработку
- Событийный цикл, библиотека libUV
- Таймеры, process.nextTick, ref/unref
- Работа с файлами, модуль fs
- Безопасный путь к файлу в fs и path
- Потоки данных в Node.JS, fs.ReadStream
- Writable поток ответа res, метод pipe
- Чат через long-polling, чтение POST
- Домены, "асинхронный try..catch"
- Чтение параметров из командной строки и окружения
Часть 2: Создаём приложение
В этой части разные технологии и внешние модули, используемые при NodeJS-разработке будут описаны в контексте создания веб-приложения.
Веб-приложение – сайт с чатом, посетителями, базой данных и авторизацией.
Вторая часть записана с версией фреймворка express 3, сейчас уже express 4.
Устаревшие фичи express3 в скринкасте не используются, так что это единственное существенное отличие – в express 4 многие библиотеки вынесены отдельно из фреймворка, см. Migrating from 3.x to 4.x.
Если вы хотите следовать скринкасту, то рекомендуется npm i express@3
, переход на 4 будет для вас очевиден.
Вторую часть можно использовать и в качестве основы для перехода к более современным фреймворкам, таким как KoaJS.
- Создаём костяк сайта / Express: основы и Middleware
- Улучшаем костяк сайта / Логгер, конфигурация, шаблонка для HTML
- Улучшаем шаблонизацию / EJS: layout, block, partials
- Начинаем работать с базой / Основы MongoDB, native driver
- Создаём модель для пользователя / Основы Mongoose
- Делаем скрипт для создания тестовой базы / Async, организация кода [обновлено]
- Веб-сервисы, работа с ошибками / Express, Mongoose
- Сессии, отслеживание посетителей /Express/
- Авторизация /Express, Mongoose, Async, EJS/
- COMET: обзор подходов / WS.JS, Sock.JS, Socket.IO
- Чат на Express и Socket.IO
- Опции Socket.IO и автореконнект
- Socket.IO + Express + авторизация
Дополнительно:
Код
Код к большинству выпусков находится в здесь: https://github.com/iliakan/nodejs-screencast, его также можно скачать и в виде zip-файла.
Ответы на частые вопросы:
- У меня Windows, пытаюсь запустить скрипт в
cmd
, набираю"node server.js"
— выдаёт ошибку, что делать? - Перейдите в нужную директорию командой
"CD <директория, в которой у вас находится server.js>"
. Например:"CD C:\node"
. Оттуда и запускайте. - Пробую запускать в FAR, но не вижу вывода скрипта.
- Нажмите
Ctrl + O
, это отключит панели FAR и вы сможете всё видеть. Нажмите ещё раз — и панели снова появятся.
Комментарии
<code>
, для нескольких строк кода — тег<pre>
, если больше 10 строк — ссылку на песочницу (plnkr, JSBin, codepen…)