Що таке node: вузол мережі чи Node.js?

Автор: Опубліковано

Коротко: Node англійською означає «вузол» — елемент мережі або структури, який може з’єднуватися з іншими елементами. В інформатиці це може бути пристрій у мережі, учасник блокчейн-мережі або частина документа вебсторінки. У розмовах про програмування «Node» часто означає Node.js — середовище виконання JavaScript, що працює поза браузером. Правильне значення можна визначити за контекстом, у якому вжито це слово.

Node як вузол комп’ютерної мережі

У комп’ютерній мережі node — це елемент, який бере участь в обміні даними: надсилає, отримує або передає їх далі. Ним може бути ноутбук, сервер, мережевий принтер або маршрутизатор. Однак це не обов’язково окремий фізичний пристрій: у деяких системах вузлом є віртуальна машина або запущений процес.

У домашній мережі ноутбук і принтер — приклади кінцевих вузлів, а маршрутизатор з’єднує мережі й передає трафік між ними. Отже, саме слово «node» не вказує, яку функцію виконує пристрій і яку обчислювальну потужність має. Це загальна назва його місця в певній системі.

Подібне значення трапляється у хмарних сервісах і кластерах. Кластер — це група обчислювальних ресурсів, які працюють спільно. Наприклад, у Kubernetes, системі керування застосунками, що запускаються в контейнерах, node — це фізична або віртуальна машина, на якій можуть виконуватися завдання застосунків. Повідомлення «кластер має три вузли» не означає, що він обслуговує лише три сайти або три застосунки.

Node.js: JavaScript поза браузером

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

За допомогою Node.js можна створювати, зокрема, сервери застосунків, інструменти командного рядка та скрипти для автоматизації роботи. Це середовище також часто використовують для роботи API — інтерфейсу, через який програми обмінюються даними. Наприклад, інтернет-магазин може надсилати запит про наявність товару до застосунку на Node.js, який зчитує залишки зі складської бази даних і повертає відповідь.

Node.js розробляють для ефективної обробки операцій введення-виведення, як-от мережевий обмін або читання даних. Це не означає, що він автоматично прискорює будь-яке завдання. Тривалі синхронні обчислення можуть блокувати обробку інших завдань у тому самому процесі, тому застосунок потрібно проєктувати з урахуванням цього.

Якщо в інструкції до проєкту сказано «встановіть Node», майже напевно йдеться про Node.js. Команда node --version у терміналі дає змогу перевірити доступну версію, а node app.js запускає файл app.js. Разом із Node.js часто використовують npm — менеджер пакетів для встановлення бібліотек і запуску скриптів проєкту. Перед встановленням перевірте вимоги проєкту та відомості про підтримувані версії в офіційній документації Node.js.

Node у блокчейні — не завжди майнер

У блокчейн-мережі node — це запущений екземпляр програмного забезпечення, який бере участь в обміні даними за правилами відповідного протоколу. Блокчейн — це реєстр даних, організованих у пов’язані блоки, копії якого підтримують учасники мережі. Вузли можуть отримувати транзакції та блоки, перевіряти їх і передавати далі.

Конкретна роль залежить від мережі та типу вузла. Повний вузол самостійно перевіряє дані за правилами протоколу, але не обов’язково зберігає всю історію без жодних обмежень. Також не слід ототожнювати кожен вузол із майнером або валідатором, який бере участь у створенні блоків.

Запуск вузла не гарантує винагороди. Якщо ви розглядаєте такий проєкт, спершу перевірте в офіційній документації мережі роль вузла, вимоги до обладнання, використання дискового простору та мережевого з’єднання. Можливі винагороди залежать від конкретних функцій і правил протоколу, а не від самого вживання слова «node».

Node у структурах даних і на вебсторінці

У структурах даних node означає окремий елемент більшого цілого. Вузол може зберігати значення та посилання на інші вузли. Так описують, зокрема, дерева, зв’язні списки й графи — структури для подання ієрархій або зв’язків.

Простий приклад — дерево категорій магазину: «Електроніка» має підкатегорію «Комп’ютери», а та — «Ноутбуки». Кожну з цих категорій можна представити вузлом. Зв’язки між ними показують ієрархічну підпорядкованість, а не фізичні кабелі чи обмін даними між серверами.

У браузері ви натрапите на DOM — об’єктну модель документа. Вона представляє документ вебсторінки як дерево вузлів, які JavaScript може зчитувати та змінювати. Вузлом може бути елемент HTML, текст або коментар. Тому «node» та «елемент» не завжди взаємозамінні: текст усередині абзацу є вузлом, але не окремим елементом HTML.

Як визначити правильне значення?

Найкращі підказки — сусідні слова та дія, яку потрібно виконати:

Якщо в повідомленні сказано лише «node недоступний», перевірте, яка програма його показує. Встановлення Node.js не відновить доступ до недоступного вузла кластера. Спершу з’ясуйте, чи повідомлення стосується середовища програмування, машини або з’єднання з мережею.

Читайте також

Дізнайтеся, як PHP-FPM обробляє запити PHP, чим відрізняється від вебсервера та як налаштувати процеси під трафік і ресурси хостингу.
Дізнайтеся, як BIND обслуговує DNS, чим відрізняються його серверні ролі та коли варто розгортати його самостійно замість керованої послуги.
Дізнайтеся, що означають польський реєстр і номер REGON, чим вони відрізняються від NIP та KRS і як перевірити дані підприємства.