Node.JS

Node.js - это кроссплатформенная среда выполнения JavaScript с открытым исходным кодом, работающая на серверах. С момента своего выпуска в 2009 году эта платформа стала чрезвычайно популярной и в наши дни играет очень важную роль в области веб-разработки.
Полную версию статьи можно найти на Node.JS. ...

Показать фильтр
Фильтры хостинга
A2 Themes & Host Me Filter

Операционная система

Дисковое пространство

RAM память

Тип диска

Ядра ЦП

Сортировать

Оценка - 0
RedSwitches Logo
RedSwitches

Красные переключатели

Pearl
$6.94 /Ежемесячно


Расположение серверов


RedSwitches Servers in NetherlandsНидерланды RedSwitches Servers in UnionСоединенные Штаты RedSwitches Servers in MelbourneАвстралия RedSwitches Servers in MumbaiИндия RedSwitches Servers in GermanyГермания
Сравнить
Оценка - 0
Hostarina Logo
Hostarina

Хостарина

Personal
$2.92 /Ежемесячно


Расположение серверов


Hostarina Servers in UnionСоединенные Штаты Hostarina Servers in RawalpindiПакистан Hostarina Servers in MunichГермания
Сравнить
Оценка - 0
Net9 Oy Logo
Net9 Oy

Net9 Oy

Small
$1.13 /Ежемесячно


Расположение серверов


Net9 Oy Servers in StockholmШвеция Net9 Oy Servers in HelsinkiФинляндия Net9 Oy Servers in ParisФранция
Сравнить
Оценка - 0
Heroku Logo
Heroku

Heroku

Hobby
$7 /Ежемесячно


Расположение серверов


Heroku Servers in United StatesСоединенные Штаты
Сравнить
Оценка - 0
Awareindia.net Logo
Awareindia.net

Awareindia.net

Linux Hosting Plan G
$5.83 /Ежемесячно

Сравнить
Оценка - 0
Chemi Cloud Logo
Chemi Cloud

Chemi Cloud

Ionic
$2.95 /Ежемесячно


Расположение серверов


Chemi Cloud Servers in BangaloreИндия Chemi Cloud Servers in New YorkСоединенные Штаты Chemi Cloud Servers in BucharestРумыния Chemi Cloud Servers in LondonОбъединенное Королевство Chemi Cloud Servers in AmsterdamНидерланды Chemi Cloud Servers in TorontoКанада Chemi Cloud Servers in SydneyАвстралия
Сравнить
Оценка - 0
Oudel Logo
Oudel

Oudel

cPanel Hosting 1
$5.95 /Ежемесячно


Расположение серверов


Oudel Servers in UnionСоединенные Штаты
Сравнить

 

Node.js

 

 

Node.js - это кроссплатформенная среда выполнения JavaScript с открытым исходным кодом, работающая на серверах. С момента своего выпуска в 2009 году эта платформа стала чрезвычайно популярной и в наши дни играет очень важную роль в области веб-разработки. Если рассматривать количество звезд, набранных проектом на GitHub, как показатель популярности, то Node.js, имеющий более 50 000 звезд, является очень и очень популярным проектом.

 

Платформа Node.js построена на движке Google V8 JavaScript, который используется в браузере Google Chrome. Эта платформа в основном используется для создания веб-серверов, но ее возможности не ограничиваются этим.

 

Давайте посмотрим на основные возможности Node.js.

 

Скорость

 

Одно из главных достоинств Node.js - скорость. Код JavaScript, выполняемый в Node.js, может быть в два раза быстрее кода, написанного на компилируемых языках, таких как C или Java, и на порядки быстрее, чем интерпретируемые языки, такие как Python или Ruby. Причина этого - неблокирующая архитектура платформы, а конкретные результаты зависят от используемых тестов, но в целом Node.js - очень быстрая платформа.

 

Простота

 

Платформа Node.js проста в освоении и использовании. На самом деле, это очень просто, особенно по сравнению с некоторыми другими серверными платформами.

 

JavaScript

 

JavaScript выполняется в среде Node.js. Это означает, что миллионы интерфейсных разработчиков, которые уже используют JavaScript в браузере, могут писать как серверный, так и клиентский код на одном языке программирования, без необходимости изучать совершенно новый инструмент для перехода к серверной разработке.

 

Браузер и сервер используют одни и те же языковые концепции. Кроме того, Node.js может быстро перейти на новые стандарты ECMAScript, поскольку они реализованы на платформе.

 

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

 

Двигатель V8

 

В основе Node.js, среди других решений, лежит движок Google V8 JavaScript с открытым исходным кодом, который используется в Google Chrome и других браузерах. Это означает, что Node.js пользуется преимуществами тысяч инженеров, которые сделали среду выполнения JavaScript Chrome невероятно быстрой и продолжают работать над улучшением V8.

 

Асинхронность

 

В традиционных языках программирования (C, Java, Python, PHP) все инструкции по умолчанию блокируются, если только разработчик явно не позаботится об асинхронном выполнении кода. В результате, если, например, в такой среде вы делаете сетевой запрос на загрузку некоторого кода JSON, выполнение потока, из которого сделан запрос, будет приостановлено до тех пор, пока ответ не будет получен и обработан.

 

JavaScript значительно упрощает написание асинхронного и неблокирующего кода с использованием одного потока, обратных вызовов и подхода к разработке, основанного на событиях. Каждый раз, когда нам нужно выполнить тяжелую операцию, мы передаем обратный вызов соответствующему механизму, который будет вызываться сразу после завершения этой операции. В результате нет необходимости ждать результатов таких операций, чтобы программа продолжила работу.

 

Похожий механизм зародился в браузерах. Мы не можем позволить себе ждать, скажем,AJAXзапрос на завершение без возможности реагировать на действия пользователя, такие как нажатия кнопок. Чтобы пользователям было удобно работать с веб-страницами, все, как загрузка данных из сети, так и обработка нажатий кнопок, должно происходить одновременно, в реальном времени.

 

Если вы когда-либо создавали обработчик событий нажатия кнопки, вы уже использовали методы асинхронного программирования.

 

Асинхронные механизмы позволяют одному серверу Node.js одновременно обрабатывать тысячи соединений, не обременяя программиста задачами управления потоками и параллельного выполнения кода. Такие вещи часто являются источником ошибок.

 

Node.js предоставляет разработчику неблокирующие базовые механизмы ввода-вывода, и в целом библиотеки, используемые в платформе Node.js, написаны с использованием неблокирующих парадигм.Это делает поведение блокировки скорее исключением, чем нормой.

 

Когда Node.js необходимо выполнить операцию ввода-вывода, такую ​​как загрузка данных из сети, доступ к базе данных или файловой системе, вместо блокировки основного потока, ожидающего результатов такой операции, Node.js инициирует ее выполнение и продолжайте делать другие вещи, пока не будут получены результаты этой операции.

 

Библиотеки

 

Благодаря простоте и удобству работы с менеджером пакетов для Node.js под названием npm, экосистема Node.js процветает. Сейчас в реестре npm имеется более полумиллиона пакетов с открытым исходным кодом, которые любой разработчик Node.js может свободно использовать.

 

Ознакомившись с некоторыми из основных функций платформы Node.js, давайте попробуем ее в действии. Начнем с установки.

 

 

Node.js

 

 

Установка Node.js

 

Node.js можно установить разными способами, о которых мы поговорим чуть позже. Итак, официальные установочные пакеты для всех основных платформ можно найти.

 

Существует еще один очень удобный способ установки Node.js - использовать диспетчер пакетов, предусмотренный в операционной системе. Например, менеджер пакетов macOS, который де-факто является стандартом в этой области, называется Homebrew.

 

Если он у вас есть в вашей системе, вы можете установить Node.js, выполнив эту команду в командной строке:

 

узел установки brew

 

Список менеджеров пакетов для других операционных систем, включая Linux и Windows, можно найти здесь.

 

Популярным менеджером версий Node.js является nvm. Этот инструмент позволяет удобно переключаться между разными версиями Node.js, с его помощью вы можете, например, установить и опробовать новую версию Node.js, а затем, при необходимости, вернуться к старой. Nvm также полезен в ситуации, когда вам нужно протестировать код на старой версии Node.js.

 

Для новичков использовать официальные установщики Node.js. Пользователям macOS рекомендуется устанавливать Node.js с помощью Homebrew. Теперь, когда вы установили Node.js, пора написать «Hello World».

 

Первое приложение Node.js

 

Самый распространенный пример первого приложения Node.js - это простой веб-сервер. Вот его код:

const http = require ('http')

const hostname = '127.0.0.1'

const порт = 3000

const server = http.createServer ((req, res) = & gt; {

res.statusCode = 200

res.setHeader ('Content-Type', 'текст / простой')

res.end ('Привет, мир \ n')

})

server.listen (порт, имя хоста, () = & gt; {

console.log (`Сервер работает по адресу http: // $ {hostname}: $ {port} /`)

})

 

Чтобы запустить этот код, сохраните его в файле server.js и выполните в терминале следующую команду:

 

узел server.js

 

Для проверки сервера откройте браузер и введите в адресной строке http://127.0.0.1:3000, то есть адрес сервера, который будет отображаться в консоли после его успешного запуска. Если все работает как надо, на странице отобразится «Hello World».

 

Посмотрим на этот пример.

 

Во-первых, обратите внимание, что код содержит команду для подключения модуля HTTP.

 

Платформа Node.js имеет отличный стандартный набор модулей, включающий в себя хорошо проработанные механизмы работы с сетью.

Метод объекта http createServer () создает новый HTTP-сервер и возвращает его.

 

Сервер настроен на прослушивание определенного порта на определенном хосте. Когда сервер готов, вызывается соответствующий обратный вызов, информирующий нас о том, что сервер запущен.

Когда сервер получает запрос, запускается событие запроса, который предоставляет два объекта. Первый - это запрос (req, объект http.IncomingMessage), второй - это ответ (res, объект http.ServerResponse). Они являются наиболее важными механизмами для обработки HTTP-запросов.

 

Первый предоставляет нам информацию о запросе. В нашем простом примере мы не используем эти данные, но, при необходимости, используя объект, reqyou может получить доступ к заголовкам запроса и переданным в нем данным.

 

Второй нужен для формирования и отправки ответа на запрос.

 

В этом случае мы формируем ответ на запрос следующим образом. Сначала мы устанавливаем код состояния свойства равным 200, что указывает на успешную операцию:

 

res.statusCode = 200

Затем мы устанавливаем заголовок Content-Type:

res.setHeader ('Content-Type', 'текст / простой')

Затем мы завершаем подготовку ответа, добавляя его содержимое в качестве аргумента метода end ():

res.end ('Привет, мир \ n')

 

Мы уже упоминали, что вокруг платформы Node.js. сформировалась мощная экосистема. Давайте теперь обсудим некоторые популярные фреймворки и вспомогательные инструменты для Node.js.

 

Фреймворки и вспомогательные инструменты для Node.js

 

Node.js - это платформа низкого уровня. Чтобы упростить для него разработку и облегчить жизнь программистам, создано огромное количество библиотек. Некоторые из них со временем стали очень популярными. Вот небольшой список библиотек, которые, как мне кажется, сделаны хорошо и заслуживают изучения:

 

Экспресс: Эта библиотека предоставляет разработчику чрезвычайно простой, но мощный инструмент для создания веб-серверов. Ключом к успеху Express был минималистский подход и сосредоточение внимания на базовых механизмах на стороне сервера без попытки навязывать видение «универсальной» серверной архитектуры.

 

Метеор: Это мощный полнофункциональный фреймворк, использующий изоморфный подход для разработки приложений JavaScript и использующий код как на клиенте, так и на сервере. Когда-то Meteor был автономным инструментом, включающим все, что могло понадобиться разработчику. Теперь он также интегрируется с интерфейсными библиотеками, такими как React, Vue и Angular. Meteor, помимо разработки обычных веб-приложений, также может использоваться в мобильной разработке.

 

Коа: Эта веб-платформа создана той же командой, что и Express. Основываясь на многолетнем опыте работы с Express, он был разработан с упором на простоту и компактность. Этот проект возник как решение проблемы внесения в Express серьезных изменений, несовместимых с другими механизмами фреймворка, которые могут расколоть сообщество.

 

Next.js: Этот фреймворк предназначен для организации рендеринга приложений React на стороне сервера.

 

Микро: Это очень легкая библиотека для создания асинхронных микросервисов HTTP.

Socket.io. Это библиотека для разработки сетевых приложений в реальном времени.

 

Фактически, в экосистеме Node.js вы можете найти вспомогательную библиотеку практически для любой задачи. Как вы понимаете, создание такой экосистемы занимает много времени. Платформа Node.js появилась в 2009 году. За время ее существования произошло много чего, что должно быть известно программисту, желающему изучить эту платформу.

 

Краткая история Node.js

 

Node.js в этом году исполняется 9 лет. Это, конечно, не так много, когда вы сравниваете этот возраст с возрастом JavaScript, которому уже 23 года, или с 25-летним возрастом Интернета, как мы его знаем, если считать от появления мозаики. браузер.

 

9 лет - короткий срок для технологий, но сейчас кажется, что платформа Node.js существовала всегда.

 

С Node.js из ранних версий платформы, когда ему было всего 2 года. Уже тогда, несмотря на то, что информации о Node.js было не так много, уже можно было почувствовать, что Node.js очень серьезен.

 

Теперь поговорим о технологиях, лежащих в основе Node.js, и кратко рассмотримосновные разработки, связанные с этой платформой.

 

Итак, JavaScript - это язык программирования, который был создан в Netscape как язык сценариев для управления веб-страницами в браузере Netscape Navigator.

Часть бизнеса Netscape заключалась в продаже веб-серверов, которые включали среду под названием Netscape LiveWire. Это позволило вам создавать динамические веб-страницы с использованием серверного JavaScript.

 

идея использования JS для разработки на стороне сервера намного старше, чем Node.js. Эта идея почти так же стара, как сам JavaScript, но в то время серверный JS не был популярен.

 

Одним из ключевых факторов, сделавших платформу Node.js такой широкой и популярной, является ее первое появление. Итак, несколькими годами ранее JavaScript начал считаться серьезным языком. Это произошло благодаря приложениям Web 2.0, таким как Google Maps или Gmail, которые продемонстрировали миру мощь современных веб-технологий.

 

Благодаря конкурентной войне браузеров, которая продолжается по сей день, производительность движков JavaScript значительно выросла. Команды разработчиков основных браузеров ежедневно работают над улучшением производительности своих решений, что благотворно влияет на JavaScript в целом.

 

Одним из таких движков является уже упомянутый V8, используемый в браузере Chrome и используемый в Node.js. Это один из результатов стремления разработчиков браузеров к высокопроизводительному коду JavaScript.

 

Конечно, популярность Node.js основана не только на удачном совпадении, но и на том, что платформа родилась в нужное время. Она познакомила мир с инновационным подходом к разработке серверного JavaScript. Давайте посмотрим на основные вехи в истории Node.js.

 

2009


  • Появление Node.js

  • Делаем первый вариант npm.

 

2010

  • Внешний вид Express.

  • Появление Socket.io.

 

2011


  • Релиз Npm 1.0.

  • Крупные компании, такие как LinkedIn и Uber, начали использовать Node.js.

 

2012


  • Быстрый рост популярности Node.js.

 

2013


  • Появление Ghost, первой крупной платформы для публикаций с использованием Node.js.

  • Релиз Коа.

 

2014


  • В этом году произошли драматические события. Появился проект IO.js, который является форком Node.js, целью которого, помимо прочего, было внедрение поддержки ES6 и ускорение разработки платформы.

 

2015


  • Основание фонда Node.js.

  • Слияние IO.js и Node.js.

  • В npm появилась возможность работать с приватными модулями.

  • Получите Node.js 4 (следует отметить, что версий 1, 2 и 3 с платформы не было).

 

2016


  • Инцидент с левой подушкой.

  • Появление пряжи.

  • Выпуск Node.js 6.

 

2017


  • Npm начинает уделять больше внимания безопасности.

  • Выпуск Node.js 8

  • Появление поддержки HTTP / 2.

  • V8 официально признан JS-движком, разработанным не только для Chrome, но и для Node.

  • Каждую неделю скачивается 3 миллиарда npm.

 

2018


  • Выпуск Node.js 10.

  • Поддержка модулей ES.

  • Экспериментальная поддержка mjs.