Код для скринкаста по Node.JS
Страница скринкаста: http://learn.javascript.ru/nodejs-screencast.
Код есть для всех выпусков, где он важен.
-
Модули для Node.JS
[modules-1-intro]
- Файл с классом User
- Простой require (не работает)
- Пример require + exports
- Экспортируем User с помощью global
- Вынос фраз в модуль ru.json
- Вынос user в директорию
-
Приёмы работы с модулями
[modules-2-module]
- Сервер с запуском в режиме экспорта или приложения
- Экспорт функции через module.exports
- Использование "базы данных" db в server и user
- Поиск db без пути, модуль в node_modules
- Добавление логгера
-
Модуль util и наследование
[top-1-util]
- Пример использования format
- Пример использования inspect
- Пример использования inherit
-
Модуль console
[top-2-console]
- Вызовы методов консоли
-
Наследование от ошибок Error
[top-3-inherit-error]
- Пример кода без обработки ошибок
- Добавлены классы ошибок и их обработка
-
События, EventEmitter и утечки памяти
[top-4-eventemitter]
- Демо EventEmitter
- Демо обработки ошибок
- Исходный объект Request, без утечек памяти
- Утечка памяти с предупреждением от EventEmitter
- Исправленная утечка
-
Node.JS как веб-сервер
[server-1-intro]
- "Привет, мир"
- "Привет, мир" со счётчиком
- Вывод событий в консоль
-
Эхо-сервер на Node.JS
[server-2-echo]
- Echo-сервер
-
Документация к модулю http
[dev-3-module]
- Логирование при помощи debug
- Логирование обёрткой над winston
-
Введение в асинхронную разработку
[event-loop-1-async]
- Синхронный сервер для index.html
- Асинхронный сервер для index.html
- Синхронный сервер с try..catch для index.html
-
Таймер, process.nextTick, ref/unref
[event-loop-3-timers]
- Простой сервер на 2.5 секунды
- Тот же сервер с выводом памяти по setInterval
- Сервер после вызова timer.unref()
- Демо разницы между nextTick и setImmediate
-
Работа с файлами, модуль fs
[fs-1-fs]
- Чтение readFile в буфер
- Чтение несуществующего файла, ENOENT
- Пример stats
- Пример writeFile - rename - unlink
-
Работа с путями от пользователя
[fs-2-path]
- Сервер отдачи файлов из директории public
-
Потоки в Node.JS, fs.ReadStream
[streams-1-writable]
- Чтение маленького файла через fs.ReadStream
- Чтение большого файла
- Обработка ошибок
-
Writable-поток ответа res, метод pipe
[streams-2-net]
- Отдача большого файла без потоков
- Отдача большого файла через read - drain - write
- Замена на встроенный метод pipe
- Отдача файла через pipe с обработкой ошибок и обрыва связи
-
Чат через long-polling
[long-poll-chat]
- Чат: клиент и сервер
-
Домены, "асинхронный try..catch"
[domain]
- Исходный сервер, падающий при ошибках
- Запуск в домене, но ошибки в запросе "вылетают" наружу
- Передача домена внутрь EventEmitter и асинхронных вызовов
- Сервер с обработкой запросов в домене
-
Создание чата
[chat]
- Создаём костяк сайта / 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 и автореконнект / Socket.IO