ورود به حساب

نام کاربری گذرواژه

گذرواژه را فراموش کردید؟ کلیک کنید

حساب کاربری ندارید؟ ساخت حساب

ساخت حساب کاربری

نام نام کاربری ایمیل شماره موبایل گذرواژه

برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید


09117307688
09117179751

در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید

دسترسی نامحدود

برای کاربرانی که ثبت نام کرده اند

ضمانت بازگشت وجه

درصورت عدم همخوانی توضیحات با کتاب

پشتیبانی

از ساعت 7 صبح تا 10 شب

دانلود کتاب Node.js в действии

دانلود کتاب Node.js در عمل

Node.js в действии

مشخصات کتاب

Node.js в действии

ویرایش: [2 ed.] 
نویسندگان: , ,   
سری:  
ISBN (شابک) : 9785496032124 
ناشر: Питер 
سال نشر: 2018 
تعداد صفحات: 432 
زبان: Russian 
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) 
حجم فایل: 15 Mb 

قیمت کتاب (تومان) : 46,000



ثبت امتیاز به این کتاب

میانگین امتیاز به این کتاب :
       تعداد امتیاز دهندگان : 1


در صورت تبدیل فایل کتاب Node.js в действии به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.

توجه داشته باشید کتاب Node.js در عمل نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.


توضیحاتی در مورد کتاب Node.js در عمل

نسخه دوم Node.js در اکشن کاملاً بازطراحی شده است تا واقعیت‌هایی را که اکنون هر توسعه‌دهنده Node با آن مواجه است منعکس کند. شما در مورد سیستم های ساختمانی front-end و فریمورک های وب محبوب Node یاد خواهید گرفت و نحوه ساختن برنامه های وب مبتنی بر Express را از ابتدا یاد خواهید گرفت. اکنون می توانید نه تنها در مورد Node و جاوا اسکریپت بیاموزید، بلکه می توانید تمام اطلاعات از جمله سیستم های ساختمان جلویی، انتخاب یک چارچوب وب، کار با پایگاه های داده در Node، آزمایش و استقرار برنامه های کاربردی وب را نیز دریافت کنید. فناوری Node به طور فزاینده ای در ترکیب با ابزارهای خط فرمان و برنامه های دسکتاپ مبتنی بر الکترون استفاده می شود، بنابراین کتاب شامل فصل هایی است که هر دو حوزه را پوشش می دهد.


توضیحاتی درمورد کتاب به خارجی

Второе издание «Node.js в действии» было полностью переработано, чтобы отражать реалии, с которыми теперь сталкивается каждый Node-разработчик. Вы узнаете о системах построения интерфейса и популярных веб-фреймворках Node, а также научитесь строить веб-приложения на базе Express с нуля. Теперь вы сможете узнать не только о Node и JavaScript, но и получить всю информацию, включая системы построения фронтэнда, выбор веб-фреймворка, работу с базами данных в Node, тестирование и развертывание веб-приложений. Технология Node все чаще используется в сочетании с инструментами командной строки и настольными приложениями на базе Electron, поэтому в книгу были включены главы, посвященные обеим областям.



فهرست مطالب

вдеис
	Node.js in Action
	■1
	Алекс Янг, Брэдли Мек, Майк Кантелон
	2-е издание
	Краткое содержание
	Оглавление
	Предисловие
	Благодарности
	О книге
	Структура
	Правила оформления и загрузка примеров кода
	Об авторах
	Алекс Янг
	Брэдли Мек
	Иллюстрация на обложке
	От издательства
	Знакомство с Node
	Знакомство с Node.js
	1.1.	Типичное веб-приложение Node
	1.1.1.	Неблокирующий ввод/вывод
	1.1.2.	Цикл событий
	1.2.1.	Node и V8
	1.2.2.	Работа с функциональными группами
	1.2.3.	График выпуска версий Node
	1.3.	Установка Node
	Дополнительная информация об установке Node приведена в приложении А.
	1.4.	Встроенные средства Node
	1.4.2.	Базовые модули
	Файловая система
	Листинг 1.1. Использование базовых модулей и потоков
	Сетевые операции
	Листинг 1.2. Программа «Hello World» с использованием модуля http для Node
	1.5.	Три основных типа программ Node
	1.5.1.	Веб-приложения
	1.5.2.	Средства командной строки и демоны
	1.5.3.	Настольные приложения
	1.5.4.	Приложения, хорошо подходящие для Node
	1.6. Заключение
	Основы программирования Node
	2.1.	Структурирование и повторное использование функциональности Node
	/ /
	Рис. 2.2. Заполнение свойства module.exports или объекта exports позволяет модулю выбрать, какая информация должна быть доступна приложению
	2.2.	Создание нового проекта Node
	2.2.1.	Создание модулей
	Рис. 2.3. Модули Node могут создаваться либо в виде файлов (пример 1), либо в виде каталогов (пример 2)
	2.3.	Настройка создания модуля с использованием module.exports
	Листинг 2.3. Модуль работать не будет
	2.4.	Повторное использование модулей с папкой node_modules
	2.5.	Потенциальные проблемы
	2.6.	Средства асинхронного программирования
	2.6.	Средства асинхронного программирования
	2.7.	Обработка одноразовых событий в обратных вызовах
	Листинг 2.7. Сокращение вложенности за счет определения промежуточных функций
	2.8.	Обработка повторяющихся событий с генераторами событий
	2.8.1.	Пример генератора событий
	2.8.2.	Реакция на событие, которое должно происходить только один раз
	2.8.3.	Создание генераторов событий: публикация/подписка
	2.8.4.	Доработка генератора событий: отслеживание содержимого файлов
	Листинг 2.13. Расширение функциональности генератора событий
	2.9.	Проблемы с асинхронной разработкой
	Листинг 2.14. Ошибки, вызванные изменением области видимости
	Листинг 2.15. Использование анонимной функции для сохранения значения глобальной переменной
	За дополнительной информацией о замыканиях обращайтесь к документации JavaScript от Mozilla: https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Closures.
	2.10.	Упорядочение асинхронной логики
	2.11.	Когда применяется последовательный поток выполнения
	Листинг 2.16. Организация последовательного выполнения с использованием дополнений, разработанных в сообществе
	2.12.	Реализация последовательного потока выполнения
	2.13.	Реализация параллельного потока выполнения
	2.14.	Средства, разработанные в сообществе
	2.15.	Заключение
	Что представляет собой веб-приложение Node?
	3.1.	Структура веб-приложения Node
	3.1.1.	Создание нового веб-приложения
	Добавление зависимости
	Простой сервер
	Сценарии npm
	3.1.2.	Сравнение с другими платформами
	3.1.3.	Что дальше?
	3.2.	Построение REST-совместимой веб-службы
	Листинг 3.1. Пример REST-совместимых маршрутов
	3.3.	Добавление базы данных
	3.3.1.	Проектирование собственного API модели
	Листинг 3.4. Добавление модуля Article к маршрутам HTTP
	3.3.2.	Преобразование статей в удобочитаемую форму и их сохранение для чтения в будущем
	3.4.	Добавление пользовательского интерфейса
	3.4.1.	Поддержка разных форматов
	3.4.2.	Визуализация шаблонов
	3.4.3.	Использование npm для зависимостей на стороне клиента
	Статические файлы
	Npm и разработка на стороне клиента: новые возможности
	3.5.	Заключение
	Веб-разработка с использованием Node
	Системы построения фронтэнда
	4.1.	Фронтэнд-разработка с использованием Node
	4.2.	Использование npm для запуска сценариев
	4.2.1.	Создание специализированных сценариев npm
	4.2.2.	Настройка средств построения фронтэнда
	4.3.	Автоматизация с использованием Gulp
	4.3.1.	Добавление Gulp в проект
	4.3.2.	Создание и выполнение задач Gulp
	4.3.3.	Отслеживание изменений
	4.3.4.	Использование отдельных файлов в больших проектах
	Рис. 4.2. Пример вывода gulp-help
	4.4.	Построение веб-приложений с использованием webpack
	4.4.1.	Пакеты и плагины
	4.4.2.	Настройка и запуск webpack
	Листинг 4.2. Файл webpack.config.js
	4.4.3.	Использование сервера для разработки webpack
	4.4.4.	Загрузка модулей и активов CommonJS
	Использование пакетов NPM с webpack
	4.5.	Заключение
	Фреймворки на стороне сервера
	5.1.	Персонажи
	5.1.1.	Фил: штатный разработчик
	5.1.2.	Надин: разработчик открытого кода
	5.1.3.	Элис: разработчик продукта
	5.2.	Что такое фреймворк?
	5.3.	Koa
	5.3.1.	Настройка
	5.3.2.	Определение маршрутов
	5.3.3.	REST API
	5.3.4.	Сильные стороны
	5.3.5.	Слабые стороны
	5.4.	Kraken
	5.4.1.	Настройка
	5.4.2.	Определение маршрутов
	5.4.3.	REST API
	5.4.4.	Сильные стороны
	5.4.5.	Слабые стороны
	5.5.	hapi
	5.5.1.	Настройка
	5.5.2.	Определение маршрутов
	Листинг 5.4. Добавление плагина в hapi
	5.5.4.	REST API
	5.5.5.	Сильные стороны
	5.5.6.	Слабые стороны
	5.6.	Sails.js
	5.6.1.	Настройка
	5.6.2.	Определение маршрутов
	5.6.3.	REST API
	5.6.4.	Сильные стороны
	5.6.5.	Слабые стороны
	5.7.	DerbyJS
	5.7.1.	Настройка
	5.7.2.	Определение маршрутов
	5.7.3.	REST API
	5.7.4.	Сильные стороны
	5.7.5.	Слабые стороны
	5.8.	Flatiron.js
	5.8.1.	Настройка
	5.8.2.	Определение маршрутов
	5.8.3.	REST API
	5.8.4.	Сильные стороны
	5.8.5.	Слабые стороны
	5.9.	LoopBack
	5.9.1.	Настройка
	5.9.2.	Определение маршрутов
	5.9.3.	REST API
	5.9.4.	Сильные стороны
	5.9.5.	Слабые стороны
	5.10.	Сравнение
	5.10.1.	Серверы HTTP и маршруты
	5.11.	Написание модульного кода
	5.12.	Выбор персонажей
	5.13.	Заключение
	Connect и Express
	6.1.	Connect
	6.1.1.	Настройка приложения Connect
	6.1.2.	Как работают промежуточные компоненты Connect
	6.1.4.	Упорядочение компонентов
	Листинг 6.2. Ошибка: компонент hello предшествует компоненту logger
	6.1.5.	Создание настраиваемых промежуточных компонентов
	6.1.6.	Использование промежуточных компонентов для обработки ошибок
	Обработчик ошибок Connect по умолчанию
	Самостоятельная обработка ошибок приложения
	Использование Node_Env для определения режима работы
	6.2.	Express
	6.2.1.	Генерирование заготовки приложения
	Листинг 6.5. Минимальное приложение Express
	Установка Express
	Генерирование приложения
	Анализ приложения
	Листинг 6.6. Сгенерированная заготовка приложения Express
	Рис. 6.7. Приложение Express по умолчанию
	Планирование приложения Shoutbox
	6.2.2.	Настройка конфигурации Express и приложения
	6.2.3.	Визуализация представлений
	Настройка системы представлений
	Изменение каталога поиска
	Ядро шаблонов по умолчанию
	Кэширование представлений
	Поиск представлений
	Методы передачи данных представлениям
	6.2.4.	Знакомство с маршрутизацией в Express
	Проверка данных, введенных пользователем
	Создание модели записи
	Листинг 6.7. Модель для записей
	Создание формы для ввода записей
	Реализация создания записи
	Добавление списка записей
	Листинг 6.11. Вывод списка записей
	Листинг 6.12. Представление entries.ejs
	Добавление маршрутов для работы с записями
	Использование специализированных промежуточных компонентов
	Проверка данных формы с использованием специализированных промежуточных компонентов
	Листинг 6.13. Две несовершенные попытки создания промежуточных компонентов проверки данных
	Построение гибких промежуточных компонентов проверки данных
	Листинг 6.14. Реализация промежуточных компонентов проверки данных
	6.2.5.	Аутентификация пользователей
	Сохранение и загрузка записей пользователей
	Создание модели пользователя
	Сохранение данных пользователя в Redis
	Защита паролей
	Тестирование логики сохранения пользователя
	Чтение данных пользователя
	Аутентификация входа пользователя
	6.2.6.	Регистрация новых пользователей
	Листинг 6.22. Добавление маршрутов регистрации
	Создание формы регистрации
	Организация обратной связи с пользователем
	Рис. 6.13. Вывод сообщений об ошибках на форме
	Сохранение временных сообщений в сеансах
	Регистрация пользователя
	6.2.7.	Вход для зарегистрированных пользователей
	Листинг 6.25. Шаблон представления для формы входа
	Аутентификация попыток входа
	Создание меню для аутентифицированных и анонимных пользователей
	Рис. 6.15. Меню входа и регистрации обеспечивает доступ к созданным нами формам
	6.2.8.	Промежуточный компонент для загрузки пользовательских данных
	Листинг 6.30. Разметка CSS, добавляемая в файл style.css для оформления меню
	6.2.9.	Создание открытого REST API
	Проектирование API
	Добавление базовой аутентификации
	Тестирование выборки данных пользователя
	Удаление конфиденциальной информации пользователя
	Добавление записей
	Добавление поддержки списка записей
	Реализация промежуточного компонента страничного вывода
	Тестирование маршрута entries
	6.2.10.	Согласование контента
	Реализация согласования контента
	Листинг 6.33. Реализация согласования контента
	Ответ в формате XML
	Листинг 6.34. Использование шаблона EJS для генерирования разметки XML
	6.3. Заключение
	Шаблонизация веб-приложений
	7.1.	Поддержка чистоты кода путем шаблонизации
	7.1.1.	Шаблонизация в действии
	Рис. 7.2. Пример вывода приложения блога в браузере
	Листинг 7.1. Текстовый файл с записями в блоге
	7.1.2.	Визуализация HTML без шаблона
	Листинг 7.3 Шаблонизатор отделяет подробности визуализации от программной логики
	Визуализация HTML с помощью шаблона
	7.2.	Шаблонизация с EJS
	7.2.1.	Создание шаблона
	Экранирование символов
	7.2.2.	Интеграция шаблонов EJS в приложение
	Кэширование шаблонов EJS
	7.2.3.	Использование EJS в клиентских приложениях
	7.3.	Использование языка Mustache с шаблонизатором Hogan
	7.3.1.	Создание шаблона
	7.3.2.	Теги Mustache
	Вывод простых значений
	Секции — перебор нескольких значений
	Инвертированные секции — HTML по умолчанию при отсутствии значений
	Лямбда-секция — включение в секции нестандартной функциональности
	Компоненты — использование шаблонов в других шаблонах
	Листинг 7.9. Использование компонентов в Hogan
	7.3.3.	Тонкая настройка Hogan
	7.4.	Шаблоны Pug
	7.4.1.	Основные сведения о Pug
	Сокращенная запись тега div
	Запись атрибутов тегов
	Запись контента тегов
	Упорядочение кода путем блочного расширения
	Включение данных в шаблоны Pug
	7.4.2.	Программная логика в шаблонах Pug
	Использование JavaScript-кода в шаблонах Pug
	Перебор объектов и массивов
	Условная визуализация в шаблоне
	Инструкция case
	7.4.3.	Организация шаблонов Pug
	Структурирование нескольких шаблонов путем наследования
	Реализация макетов путем вставки блоков в начало и в конец шаблона
	Включение шаблонов
	Примеси и многократное использование программной логики шаблона
	7.5.	Заключение
	Хранение данных в приложениях
	8.1.	Реляционные базы данных
	8.2.	PostgreSQL
	8.2.1.	Установка и настройка
	8.2.2.	Создание базы данных
	8.2.3.	Подключение к Postgres из Node
	8.2.4.	Определение таблиц
	8.2.5.	Вставка данных
	8.2.6.	Обновление данных
	8.2.7.	Запросы на выборку данных
	8.3.1.	jQuery для баз данных
	8.3.2.	Подключение и выполнение запросов в Knex
	Листинг 8.6. Использование Knex для подключения и выдачи запросов к sqlite3
	Листинг 8.7. Взаимодействие с API на базе Knex
	8.3.3.	Переход на другую базу данных
	8.3.4.	Остерегайтесь ненадежных абстракций
	8.5.	Гарантии ACID
	8.5.1.	Атомарность
	8.5.2.	Согласованность
	8.5.3.	Изоляция
	8.5.4.	Устойчивость
	8.7.	Распределенные базы данных
	8.8.	MongoDB
	Рис. 8.2. Статистика использования MongoDB
	8.8.1.	Установка и настройка
	8.8.2.	Подключение к MongoDB
	8.8.3.	Вставка документов
	8.8.4.	Получение информации
	8.8.5.	Идентификаторы MongoDB
	8.8.6.	Реплицированные наборы
	Листинг 8.11. Запуск реплицированного набора
	8.8.7.	Уровень записи
	8.9.	Хранилища «ключ-значение»
	8.10.1.	Установка и настройка
	8.10.2.	Выполнение инициализации
	8.10.3.	Работа с парами «ключ-значение»
	8.10.4.	Работа с ключами
	8.10.5.	Кодирование и типы данных
	Массивы с одним и несколькими значениями
	Буферы с двоичными данными
	8.10.6.	Работа с хешами
	8.10.7.	Работа со списками
	8.10.8.	Работа со множествами
	8.10.9.	Реализация паттерна «публикация/подписка» на базе каналов
	8.10.10.	Повышение быстродействия Redis
	8.11.	Встроенные базы данных
	8.12.	LevelDB
	8.12.1.	LevelUP и LevelDOWN
	8.12.2.	Установка
	8.12.3.	Обзор API
	8.12.4.	Инициализация
	8.12.5.	Кодирование ключей и значений
	8.12.6.	Чтение и запись пар «ключ-значение»
	Листинг 8.18. Чтение и запись значений
	Листинг 8.19. Получение значений с несуществующими ключами
	Листинг 8.20. Переопределение параметров кодирования для конкретных операций
	8.12.7.	Заменяемые подсистемы базы данных
	Листинг 8.21. Использование memdown с LevelUP
	8.12.8.	Модульная база данных
	level-http2 aaaristo
	leveldown-mobile obastemur
	Рис. 8.6. Примеры сторонних пакетов LevelDB в npm
	8.13.	Затратные операции сериализации и десериализации
	Листинг 8.22. Хронометражное тестирование сериализации
	8.14.	Хранение данных в браузере
	8.14.1.	Веб-хранилище: localStorage и sessionStorage
	Сводка API
	8.14.2.	Чтение и запись значений
	Листинг 8.23. Хранение JSON в веб-хранилище
	Листинг 8.24. Перебор всего набора данных в localStorage
	Листинг 8.25. Ключи, реализующие пространства имен
	Листинг 8.26. Получение всех элементов в пространстве имен
	Листинг 8.27. Использование localStorage для мемоизации
	8.14.3.	localForage
	Обзор API
	8.14.4.	Чтение и запись
	8.15.	Виртуальное хранение
	S3 не ограничивается хранением графики
	8.16.	Какую базу данных выбрать?
	8.17.	Заключение
	Тестирование приложений Node
	9.1.	Модульное тестирование
	9.1.1.	Модуль assert
	Простой пример
	Тестирование значения переменной с помощью утверждения equal
	Выявление возможных проблем с помощью утверждения notEaqual
	Листинг 9.4. Тестирование добавления элементов в список запланированных дел
	Использование дополнительной функциональности: strictEqual, notStrictEqual, deepEqual, notDeepEqual
	Проверка асинхронных значений на истинность с помощью утверждения ok
	Листинг 9.5. Тестирование передачи значения true при обратном вызове doAsync
	Тестирование корректности механизма генерирования ошибок
	Листинг 9.6. Тестирование генерирования ошибки при отсутствии параметра
	Добавление логики запуска тестов
	Листинг 9.7. Выполнение тестов и оповещение о завершении тестов
	9.1.2.	Mocha
	Тестирование Node-приложений с помощью Mocha
	Листинг 9.8. Базовая структура тестов Mocha
	Листинг 9.9. Описание функциональности memdb .save
	Рис. 9.2. Проваленный тест Mocha
	Листинг 9.10. Добавление функциональности сохранения
	Определение логики инициализации и завершения с использованием перехватчиков Mocha
	Тестирование асинхронной логики
	9.1.3.	Vows
	Тестирование логики приложения с помощью Vows
	9.1.4.	Chai
	Листинг 9.14. Интерфейс assert в Chai
	9.1.5.	Библиотека should.js
	9.1.6.	Шпионы и заглушки в Sinon.JS
	Листинг 9.17. Класс Database
	Шпионы
	Заглушки
	9.2.	Функциональное тестирование
	Рис. 9.6. Тестирование средствами автоматизации браузера
	9.2.1.	Selenium
	Листинг 9.20. Пример проекта Express
	Листинг 9.21. Тест WebdriverIO
	9.3.	Ошибки при прохождении тестов
	9.3.1.	Получение более подробных журналов
	Переменная NODE_DEBUG
	Переменная DEBUG
	9.3.2.	Получение расширенной трассировки стека
	9.4.	Заключение
	Развертывание и обеспечение доступности приложений Node
	10.1.	Хостинг Node-приложений
	10.1.1.	Платформа как сервис
	* $: дешево, $$$$$: дорого
	Пример: Node в Heroku за 10 минут
	10.1.2.	Серверы
	10.1.3.	Контейнеры
	Пример: запуск приложений Node с Docker
	10.2.	Основы развертывания
	10.2.1.	Развертывание из репозитория Git
	10.2.2.	Поддержание работы Node-приложения
	t
	і
	10.3.	Максимизация времени доступности и производительности приложений
	10.3.1.	Поддержание доступности приложения с Upstart
	Upstart и Respawn
	10.3.2.	Кластерный API
	10.3.3.	Хостинг статических файлов и представительство
	Листинг 10.4. Конфигурационный файл для использования сервера Nginx в качестве посредника для Node.js и предоставления статических файлов
	10.4. Заключение
	За пределами веб-разработки
	Написание приложений командной строки
	11.1.	Соглашения и философия
	11.2.	Знакомство с parse-json
	11.3.	Аргументы командной строки
	11.3.1.	Разбор аргументов командной строки
	11.3.2.	Проверка аргументов
	Листинг 11.1. Использование yargs для разбора аргументов командной строки
	11.3.3.	Передача stdin в виде файла
	11.4.	Использование программ командной строки с npm
	11.5.	Связывание сценариев с каналами
	11.5.1.	Передача данных parse-json
	11.5.2.	Ошибки и коды завершения
	Потоки ошибок
	11.5.3.	Использование каналов в Node
	11.5.4. Каналы и последовательность выполнения команд
	Перенаправление ввода
	11.6.	Интерпретация реальных сценариев
	11.7.	Заключение
	Разработка настольных приложений с использованием Electron
	12.1.	Знакомство с Electron
	12.1.1.	Технологический стек Electron
	12.1.2.	Проектирование интерфейса
	12.2.	Создание приложения Electron
	Листинг 12.1. Простой модуль Node
	12.3.	Построение полнофункционального настольного приложения
	12.3.1.	Исходная настройка React и Babel
	12.3.2.	Установка зависимостей
	12.3.3.	Настройка webpack
	12.4.	Приложение React
	12.4.1.	Определение компонента Request
	12.4.2.	Определение компонента Response
	12.4.3.	Взаимодействие между компонентами React
	12.5.	Построение и распространение
	12.5.1.	Построение приложений с использованием Electron Packager
	12.5.2.	Упаковка
	Рис. 12.6. Содержимое типичного пакета приложения Electron
	12.6.	Заключение
	Приложения
	Установка Node
	А.1. Установка Node с использованием программы установки
	А.1.1. Программа установки для macOS
	А.1.2. Программа установки для Windows
	A.2. Другие способы установки Node
	A.2.1. Установка Node из исходного кода
	A.2.2. Установка Node из менеджера пакетов
	Автоматизированное извлечение веб-данных
	Б.1. Извлечение веб-данных
	Рис. Б.1. Последовательность действий по извлечению и сохранению контента
	Б.1.1. Применение извлечения веб-данных
	Рис. Б.2. Octopart предоставляет средства поиска электронных компонентов
	Б.1.2. Необходимые инструменты
	Б.2. Простейшее извлечение веб-данных с использованием cheerio
	Б.3. Обработка динамического контента с jsdom
	Листинг Б.4. Разбор динамической разметки HTML с использование jsdom
	Б.4. Обработка «сырых» данных
	Листинг Б.5. Разбор данных и генерирование CSV
	Б.5. Заключение
	Официально поддерживаемые промежуточные компоненты
	В.1. Разбор cookie, тел запросов и строк информационных запросов
	В.1.1. cookie-parser: разбор HTTP-cookie
	Обычные cookie
	Подписанные cookie
	Листинг В.2. Разбор подписанных cookie
	Cookie в формате JSON
	Настройка исходящих cookie
	В.1.2. Разбор строк запросов
	Простой пример использования
	Листинг В.3. Разбор строк запросов
	В.1.3. body-parser: разбор тел запросов
	Формы
	Листинг В.4. Разбор запросов форм
	Проверка запросов
	Листинг В.5. Проверка запросов форм
	Для чего нужно ограничение?
	Разбор данных JSON
	Разбор многосекционных данных 
Листинг В.7. Обработка отправленных файлов В.1.4. Сжатие ответов Простой пример использования Использование нестандартной функции фильтрации Задание уровней сжатия и расходования памяти В.2. Реализация базовых функций веб-приложения В.2.1. morgan: ведение журнала запросов Простейший вариант использования Листинг В.8. Использование модуля morgan для ведения журнала Настройка форматов журнала Режимы вывода журнала: stream и immediate В.2.2. serve-favicon: значки адресной строки и закладки Применение В.2.3. method-override — имитация методов HTTP Применение Получение доступа к исходному значению req.method В.2.4. vhost: виртуальный хостинг Применение Использование нескольких экземпляров vhost() В.2.5. express-session: управление сеансами Применение Листинг В.11. Использование сеансов в Connect Установка времени истечения сеанса Работа с данными сеанса Манипулирование сеансовыми cookie Хранилища данных сеанса Листинг В.12. Использование Redis для хранения сеансовых данных В.3. Безопасность веб-приложений В.3.1. basic-auth: базовая HTTP-аутентификация Пример с cURL В.3.2. csurf: защита от атак CSRF Применение В.3.3. errorhandler: — обработка ошибок при разработке Применение Получение HTML-ответа об ошибке Получение ответа об ошибке в формате простого текста Получение JSON-ответа об ошибке В.4. Предоставление статических файлов В.4.1. serve-static — автоматическое предоставление статических файлов браузеру Применение Использование модуля serve-static с монтированием Абсолютный и относительный пути Предоставление файла index.html при запросе каталога В.4.2. serve-index: генерирование списков содержимого каталогов Применение Рис. В.6. Предоставление списка содержимого каталога с использованием промежуточного компонента Connect directory() Использование directory() с монтированием Глоссарий Глава 1 Глава 2 Глава 3 Глава 4 Глава 5 Глава 6 Глава 7 Глава 8 Глава 9 Глава 10 Глава 11 КНИГА-ПОЧТОЙ




نظرات کاربران