Node.js - Введение

Что такое Node.js?

Node.js - это серверная платформа, построенная на движке Google Chrome JavaScript Engine (V8 Engine). Node.js был разработан Райаном Далем в 2009 году, а его последняя версия - v0.10.36. Определение Node.js в официальной документации выглядит следующим образом:

Node.js - это платформа, построенная на среде выполнения JavaScript Chrome для простого создания быстрых и масштабируемых сетевых приложений. 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 лучшим выбором для архитекторов программного обеспечения.

  • Asynchronous and Event Driven- Все API библиотеки Node.js асинхронны, то есть не блокируются. По сути, это означает, что сервер на основе Node.js никогда не ждет, пока API вернет данные. Сервер переходит к следующему API после его вызова, и механизм уведомления событий Node.js помогает серверу получить ответ от предыдущего вызова API.

  • Very Fast - Библиотека Node.js, построенная на движке JavaScript V8 Google Chrome, очень быстро выполняет код.

  • Single Threaded but Highly Scalable- Node.js использует однопоточную модель с циклом событий. Механизм событий помогает серверу реагировать неблокирующим образом и обеспечивает высокую масштабируемость сервера в отличие от традиционных серверов, которые создают ограниченные потоки для обработки запросов. Node.js использует однопоточную программу, и одна и та же программа может обслуживать гораздо большее количество запросов, чем традиционные серверы, такие как HTTP-сервер Apache.

  • No Buffering- Приложения Node.js никогда не буферизуют данные. Эти приложения просто выводят данные по частям.

  • License- 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 для приложений, интенсивно использующих ЦП.