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

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

По сути, это среда для запуска JavaScript вне браузера.
Она построена на движке Chrome V8 JavaScript Engine. Он был создан Райаном Далем в 2009 году, поэтому существует уже некоторое время. В Reddit я видел комментарии, в которых говорится, что Node.js не подходит для приложений, интенсивно использующих данные, по сравнению с PHP или Python. Это правда. Даже создатели Node опубликовали заявление об отказе от ответственности, в котором говорится, что Node.js не подходит для операций с высокой нагрузкой на ЦП.

Что можно создать с помощью Node.js?

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

Скотт Мосс, автор книги Introduction to Node.js, упомянул, как он использует Node.js для автоматизации. Он собирает кроссовки, и всякий раз, когда кроссовки запускались на определенных веб-сайтах, он буквально создавал скрипт, который покупал для него кроссовки. Одной из лучших сред выполнения для создания API будет Node.js, поскольку он обеспечивает высокий уровень параллелизма из-за своего цикла событий (однопоточный, основанный на событиях). Он может обрабатывать так много запросов одновременно.

Браузер и Node.js

Давайте поговорим о подходе к созданию приложений в браузере и
на узле.

В браузере мы создаем интерактивные приложения, тогда как в Node мы создаем серверные приложения и сценарии. Они оба являются JavaScript, но мы не создаем что-то с DOM, с которым люди могут взаимодействовать. С Node это просто чистая логика. Здесь нет пользовательского интерфейса, CSS или анимации. Браузер поддерживает модули. Они являются необязательными. Они используют ES6 в качестве разновидности модулей, но у Node.js есть обязательные модули. Обойти это невозможно, если только вы не напишите весь свой код в одном файле, что не рекомендуется.

Глобальные переменные в Node.js

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

process- Содержит информацию о среде, в которой работает программа
require- функция для поиска и использования модулей в текущем модуле
__dirname -текущий путь к каталогу
модуль- информация о текущем модуле, методах или использовании модуля.

Почему в приведенном выше коде в качестве аргумента передается всего пять глобальных переменных, тогда как в документации их более 20?

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

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

Файл, который импортирует этот модуль, получает доступ только к свойству объекта экспорта. Не пишите второй модуль. оператор exports, так как он переопределит предыдущий оператор.

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

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

Я расширим это введение в моем следующем блоге.