Node.js — это серверная платформа, построенная на движке Google Chrome JavaScript (V8 Engine). Node.js был разработан Райаном Далом в 2009 году, и его последняя версия v0.10.36. Определение Node.js, как указано в его официальной документации, следующее:
Node.js — это платформа, основанная на среде выполнения Chrome JavaScript, для простого создания быстрых и масштабируемых сетевых приложений. Node.js использует управляемую событиями неблокирующую модель ввода / вывода, которая делает ее легкой и эффективной, идеально подходящей для приложений с интенсивным использованием данных в реальном времени, работающих на распределенных устройствах.
Node.js — это платформа, основанная на среде выполнения Chrome JavaScript, для простого создания быстрых и масштабируемых сетевых приложений. Node.js использует управляемую событиями неблокирующую модель ввода / вывода, которая делает ее легкой и эффективной, идеально подходящей для приложений с интенсивным использованием данных в реальном времени, работающих на распределенных устройствах.
Node.js — это кроссплатформенная среда выполнения с открытым исходным кодом для разработки серверных и сетевых приложений. Приложения Node.js написаны на JavaScript и могут запускаться в среде выполнения Node.js в OS X, Microsoft Windows и Linux.
Node.js также предоставляет богатую библиотеку различных модулей JavaScript, которая значительно упрощает разработку веб-приложений с использованием Node.js.
Node.js = Runtime Environment + JavaScript Library
Особенности Node.js
Ниже приведены некоторые важные функции, которые делают Node.js лучшим выбором для архитекторов программного обеспечения.
-
Асинхронный и управляемый событиями — все API библиотеки Node.js являются асинхронными, то есть неблокирующими. По сути, это означает, что сервер на базе Node.js никогда не ждет, пока API вернет данные. Сервер переходит к следующему API после его вызова, а механизм уведомления о событиях Node.js помогает серверу получить ответ от предыдущего вызова API.
-
Очень быстрая — библиотека Node.js, созданная на основе движка Google Chrome V8 JavaScript, очень быстро выполняет код.
-
Однопоточный, но очень масштабируемый — Node.js использует однопотоковую модель с зацикливанием событий. Механизм событий помогает серверу реагировать неблокирующим образом и обеспечивает высокую масштабируемость сервера по сравнению с традиционными серверами, которые создают ограниченные потоки для обработки запросов. Node.js использует однопотоковую программу, и та же самая программа может обслуживать гораздо большее количество запросов, чем традиционные серверы, такие как Apache HTTP Server.
-
Без буферизации — приложения Node.js никогда не буферизуют данные. Эти приложения просто выводят данные кусками.
-
Лицензия — Node.js выпущен под лицензией MIT .
Асинхронный и управляемый событиями — все API библиотеки Node.js являются асинхронными, то есть неблокирующими. По сути, это означает, что сервер на базе Node.js никогда не ждет, пока API вернет данные. Сервер переходит к следующему API после его вызова, а механизм уведомления о событиях Node.js помогает серверу получить ответ от предыдущего вызова API.
Очень быстрая — библиотека Node.js, созданная на основе движка Google Chrome V8 JavaScript, очень быстро выполняет код.
Однопоточный, но очень масштабируемый — Node.js использует однопотоковую модель с зацикливанием событий. Механизм событий помогает серверу реагировать неблокирующим образом и обеспечивает высокую масштабируемость сервера по сравнению с традиционными серверами, которые создают ограниченные потоки для обработки запросов. Node.js использует однопотоковую программу, и та же самая программа может обслуживать гораздо большее количество запросов, чем традиционные серверы, такие как Apache HTTP Server.
Без буферизации — приложения Node.js никогда не буферизуют данные. Эти приложения просто выводят данные кусками.
Лицензия — Node.js выпущен под лицензией MIT .
Кто использует Node.js?
Ниже приведена ссылка на github wiki, содержащая исчерпывающий список проектов, приложений и компаний, использующих Node.js. В этот список входят eBay, General Electric, GoDaddy, Microsoft, PayPal, Uber, Wikipins, Yahoo !, и Yammer.
Проекты, приложения и компании, использующие Node
Концепции
Следующая диаграмма изображает некоторые важные части Node.js, которые мы подробно обсудим в последующих главах.
Где использовать Node.js?
Ниже приведены области, где Node.js зарекомендовал себя как идеальный технологический партнер.
- Приложения, связанные с вводом / выводом
- Приложения для потоковой передачи данных
- Интенсивное использование данных в реальном времени (DIRT)
- Приложения на основе JSON API
- Одностраничные приложения
Где не использовать Node.js?
Не рекомендуется использовать Node.js для приложений, интенсивно использующих процессор.