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

Чтобы легко понять Node.js, нам нужно взглянуть на историю языка программирования JavaScript.

JavaScript был разработан программистом Netscape по имени Брэндан Эйх в сентябре 1995 в качестве языка сценариев.

JavaScript можно использовать в качестве веб-браузера или, можно сказать, клиентского языка сценариев. Таким образом, мы можем использовать HTML и CSS для создания веб-сайтов и JavaScript, чтобы сделать ваш веб-сайт более интерактивным и динамичным. Таким образом, в то время не так много общего с JavaScript.

Как я уже упоминал выше, JavaScript работает в веб-браузере. Итак, как мы можем запустить язык программирования в браузере?

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

Мы пишем код или разрабатываем приложения на JavaScript, которые запускаются в браузере, поэтому браузер должен преобразовать этот код в машинный код. И все это преобразование было выполнено с помощью JavaScript Engine.

Теперь поговорим о движке JavaScript, что это такое, как он работает и его история.

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

Механизм JavaScript - это программа или интерпретатор, который выполняет код JavaScript и компилирует его в байт-код.

Существует несколько браузеров, таких как Chrome, Safari, Firefox, Microsoft Edge и т. Д. Таким образом, у всех браузеров есть собственный способ преобразования кода JavaScript в байт-код, что означает, что все они имеют свой собственный движок JavaScript.

Первый в истории движок JavaScript под названием SpiderMonkey был разработан в веб-браузере Netscape Navigator создателем JavaScript всего за 10 дней.

Существует множество движков JavaScript, реализованных различными веб-браузерами, и некоторые из них наиболее популярны:

· V8 - с открытым исходным кодом, разработанный Google, написанный на C ++

· SpiderMonkey - первый движок JavaScript, который в те времена работал с Netscape Navigator, а сегодня - с Firefox.

· Чакра (JScript9) - Internet Explorer

· Чакра (JavaScript) - Microsoft Edge

· Rhin o - управляемый Mozilla Foundation, открытый исходный код, полностью разработанный на Java

· JavaScriptCore - открытый исходный код, продается как Nitro и разработан Apple для Safari.

Увеличивается рабочая область JavaScript?

Поскольку выполнение JavaScript становится быстрее с помощью движков JavaScript, возникает вопрос, можем ли мы использовать JavaScript и в других областях?

Итак, ответ - да, мы можем использовать JavaScript при создании мобильных приложений, а также настольных приложений с помощью некоторых фреймворков и методов.

Мы можем использовать JavaScript на стороне сервера, используя Node.js, который создает среду выполнения с помощью V8 движка JavaScript .

Node.js

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

Первоначально Node.js был написан Райаном Далем в 2009 году, примерно через тринадцать лет после появления первой серверной среды JavaScript. Первоначальный выпуск поддерживал только Linux и Mac OS X. Но позже, в 2011 году, первая сборка Node.js с поддержкой Windows был выпущен.

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

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

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

В Node.js также есть npm (Node Package Manager), в котором есть все доступные для использования пакеты и модули, а также вы можете создавать свои собственные модули.

Как создать HTTP-сервер в Node.js?

Во-первых, чтобы установить Node.js на свое устройство. В браузере перейдите на https://nodejs.org / и загрузите последнюю версию Node.js в соответствии с конфигурацией вашего устройства. Установщик Node.js включает диспетчер пакетов NPM.

Проверить установку

Откройте командную строку (или PowerShell) и введите следующую команду:

Система должна отображать версию Node.js, установленную в вашей системе. Вы можете сделать то же самое для NPM:

Версии узла и NPM в моей системе:

Node.js как веб-сервер

Node.js имеет встроенный модуль HTTP, который позволяет Node.js передавать данные по протоколу передачи гипертекста (HTTP).

Чтобы включить модуль HTTP, используйте метод require():

Модуль HTTP может создать HTTP-сервер, который прослушивает порты сервера и возвращает ответ клиенту.

Используйте метод createServer() для создания HTTP-сервера:

Сохраните файл с именем «test.js» и выйдите. Откройте PowerShell и запустите файл как:

Это будет выглядеть так, как будто ничего не произошло. На самом деле ваш скрипт работает в фоновом режиме. Вы можете увидеть уведомление Защитника Windows о разрешении трафика - пока нажмите Разрешить.

Теперь, чтобы увидеть результат, откройте веб-браузер и введите в адресную строку следующее:

В самом верхнем левом углу вы должны увидеть текст Hello World!

Прямо сейчас ваш компьютер работает как сервер. Любой другой компьютер, который попытается получить доступ к вашей системе через порт 8080, увидит уведомление Hello World.

Почему Node.js использует движок JavaScript V8?

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

V8 был впервые разработан для повышения производительности выполнения JavaScript в веб-браузерах. Чтобы получить скорость, V8 переводит код JavaScript в более эффективный машинный код вместо использования интерпретатора. Он компилирует код JavaScript в машинный код при исполнении, реализуя JIT-компилятор (Just-In-Time), как это делают многие современные движки JavaScript, такие как SpiderMonkey или Rhino (Mozilla). Основное отличие здесь в том, что V8 не создает байт-код или какой-либо промежуточный код.

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

Полная разработка

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

В настоящее время существует два самых популярных полнофункциональных JavaScript-фреймворка:

  • MERN (MongoDB, ExpressJS, ReactJS, NodeJS)
  • MEAN (MongoDB, ExpressJS, AngularJS, NodeJS)

Стек MERN -

  • MongoDB: ориентированная на документы база данных без SQL, используемая для хранения данных приложения.
  • NodeJS: среда выполнения JavaScript. Он используется для запуска JavaScript на компьютере, а не в браузере.
  • ExpressJS: фреймворк, расположенный поверх NodeJS, используемый для создания серверной части сайта с использованием функций и структур NodeJS. Поскольку NodeJS был разработан не для создания веб-сайтов, а для запуска JavaScript на машине, был разработан ExpressJS.
  • ReactJS: библиотека, созданная Facebook. Он используется для создания компонентов пользовательского интерфейса, которые создают пользовательский интерфейс одностраничного веб-приложения.

Стек MEAN -

  • MongoDB: система баз данных NoSQL без схемы. MongoDB сохраняет данные в двоичном формате JSON, что упрощает передачу данных между клиентом и сервером.
  • ExpressJS: платформа веб-приложений для Node.js. Он позволяет создавать серверные приложения на Node.js и является серверным приложением, которое соединяет интерфейс и базы данных.
  • AngularJS: это интерфейсная технология в стеке. Это платформа JavaScript, которая контролирует поведение различных элементов, отображаемых на веб-страницах.
  • NodeJS: среда выполнения JavaScript; он используется для запуска JavaScript на машине, а не в браузере.

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

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