Введение
Node (другое название - Node,js)- это недавно появившаяся платформа, которая выводит язык JavaScript за пределы браузера и позволяет использовать его в серверных приложениях. В основе платформы лежит исключительно быстрый движок JavaScript, заимствованный из браузера Chrome, V8, к которому добавлена быстрая и надежная библиотека асинхронного сетевого ввода/вывода. Основной упор в Node делается на создании высокопроизводительных, хорошо масштабируемых клиентских и серверных приложений для «веб реального времени».
Эту платформу разработал Райан Дал (RyanDahl) в 2009 году, после двух лет экспериментирования с созданием серверных веб-компонентов на Ruby и других языках. В ходе своих исследований он пришел к выводу, что вместо традиционной модели параллелизма на основе потоков следует обратиться к событийно-ориентированным системам. Эта модель была выбрана за простоту (хорошо известно, что многопоточные системы трудно реализовать правильно), за низкие накладные расходы, по сравнению с идеологией «один поток на каждое соединение», и за быстродействие. Цель Node - предложить «простой способ построения масштабируемых сетевых серверов». При проектировании за образец были взяты такие системы, как EventMachine (Ruby) и каркас Twisted (Python).
- Введение
- 1. Что такое NODE?
- 1.1 Что позволяет делать Node?
- 1.2 Почему имеет смысл использовать Node?
- Архитектура: потоки или асинхронный ввод/вывод с управлением по событиям.
- 1.3 Производительность и использование процессора
- 1.4 Использование серверов, экономия затрат и экологичный Интернет
- 2. Характеристики NODE
- 2.1 Системные требования
- 2.2 Запуск Node-серверов на этапе инициализации системы
- 2.3 Использование всех процессорных ядер в многоядерной системе
- 3. Модули Node
- 3.1 Как Node ищет модули, затребованные в require(module)?
- Менеджер пакетов для Node (npm)
- 4. Хранение и выборка данных
- 4.1 Движки сохранения данных для Node
- 4.2 SQLite3 - облегченная встраиваемая база данных на основе SQL
- 4.3 Mongoose - интерфейс между Node и MongoDB
- 5. Практический пример на основе продолжительных вычислений (числа Фибоначчи)