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 это легкий ветерок. Это делает его предпочтительным выбором среди веб-разработчиков.