Несколько замечаний по node.js

К настоящему времени мы знаем, что Javascript может работать вне браузера. Итак, если у нас может быть разное время выполнения Javascript, как вы думаете, что такое node.js?

Язык программирования? Является ли node.js движком Javascript? Это время выполнения?

Что ж, node js — это не язык программирования и уж точно не движок Javascript. Это среда выполнения.
До 2009 года Javascript запускался только внутри браузера, и поэтому многие люди не уважали этот язык.

Для многих это был глупый игрушечный язык. Райан Долл 2009 года закончил все это. Он решил, что было бы неплохо запускать Javascript вне браузера.

И поэтому он создал node.js, программу на C++. Итак, это исполняемый файл; node.exe — программа на C++, которая предоставляет нам эту среду выполнения.

Node делает гораздо больше, чем время работы нашего браузера. В браузере мы ограничены тем, что можем делать в фоновом режиме.

Node делает гораздо больше, чем время работы нашего браузера. В браузере мы ограничены тем, что можем делать в фоновом режиме.

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

Но в узле мы можем делать большинство вещей в фоновом режиме. Мы можем получить доступ к файловым системам и многому другому. Node.js использует движок Google V8 для понимания Javascript, но он также использует эту библиотеку LIB UV (написанную на C++), которая работает сама по себе для создания цикла событий, чтобы расширить то, что мы можем делать в фоновом режиме.

Когда вы установите узел на свой компьютер, вы увидите, что он похож на окно в браузере, у узла есть нечто, называемое global — глобальный API узла.

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

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

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

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

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