Node.js как среда выполнения JS

Node или Node.js

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

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

Node.js использует модульную систему, т. е. вся встроенная функциональность разбита на отдельные пакеты или модули — блоки кода, которые могут использоваться повторно в других модулях (подробнее см. Модули в JavaScript).

Документация по платформе Node.JS размещена на сайте https://nodejs.org.

Node.js позволяет JavaScript:

  1. обеспечивать создание серверных приложений, в т. ч.:
    • взаимодействовать с устройствами ввода-вывода через API, написанный на C++;
    • подключать другие внешние библиотеки, написанные на разных языках, передавая вызовы к ним из JavaScript-кода;
  2. разрабатывать десктопные оконные приложения (при помощи NW.js, AppJS или Electron для Linux, Windows и macOS);
  3. программировать микроконтроллеры (например, tessel, low.js и espruino).

В основе Node.js лежит событийно-ориентированное и асинхронное (или реактивное) программирование с неблокирующим вводом/выводом.

Javascript называют “однопоточным”, имея ввиду, что только одна инструкция исполняется в каждый момент времени (подробнее о работе движка JavaScript). Один вызов функции имеет ровно один контекст выполнения, связанный с ним. При этом в  каждый момент времени в Javascript активен только один контекст выполнения. Node.JS позволяет нивелировать однопоточность JS: пока Node.js ждет выполнения кода и вызова функции, он может решать какие-то другие задачи (при этом поток в ожидании запроса блокироваться не будет). Таким образом, приложение может обратиться с запросом к базе данных сервера, а пока ожидается ответ, обработать какие-то другие запросы. Это заметно ускоряет обмен информацией с сервером и, как итог, работу браузерного приложения.

Node.js является открытым проектом, исходники которого можно посмотреть на github.com.

Загрузка установочного пакета доступна на официальном сайте https://nodejs.org.

Стек MEAN, MERN, MEVN

Обычно при веб-разработке на всех уровнях стека используются разные языки программирования. Однако существуют стеки, использующие всего один язык программирования — JavaScript:

  1. MEAN — включает  базу данных MongoDB, фреймворки Express.js и AngularJS, технологию Node.js;
  2. MERN — в качестве фронтенд-фреймворка используется React;
  3. MEVN — в качестве фронтенд-фреймворка используется VueJS.

npm (node package manager)

В состав Node.js входит собственный установщик пакетов npm (node package manager). Установка необходимого пользователю пакета производится при помощи команды:

npm install <packagename>

Все доступные для установки пакеты и их краткое описание выводятся командой:

npm search

Этой же командой можно производить выборочный поиск пакетов.

Для инициализации проекта и создания файла package.json, определяющего настройки проекта (зависимости, скрипты, название и т.д.), npm запускается в корневой папке проекта командой npm init:

npm init -y  (флаг -y — настройки по умолчанию, для быстрой инициализации).

Пример простейшего файла package.json

[свернуть]

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.