Grafika główna dla wpisu

Node.js – frontend czy backend?

📅 18 lipca 2022

Node.js potrafi sprawić rekruterom sporo problemów podczas szukania odpowiednich kandydatów. Z jednej strony wymaga znajomości języka JavaScript, który to jest kojarzony głównie z frontend-em. Z drugiej strony technologia ta pojawia się jako wymaganie dla developerów backend-owych. Czym więc jest Node.js, skąd się wziął i czemu jest tak blisko związany z JavaScript-em? Mam nadzieję, że ten krótki wpis rozwieje wszystkie wątpliwości 🙂

JavaScript w przeglądarce

JavaScript jest językiem programowania, który powstał po to, aby programiści mogli umieszczać na stronach internetowych coś więcej niż tylko statyczny tekst. Początkowo były to np. proste animacje, popupy, mało skomplikowana logika. Żebyśmy mogli uruchomić kod JS, potrzebujemy jakiegoś „narzędzia”, które ten kod odpowiednio zrozumie i uruchomi. Twórcy przeglądarek internetowych (np. IE, Firefox, Chrome) zaczęli więc tworzyć tzw. silniki, dzięki którym możliwe było uruchomienie we wspomnianych już przeglądarkach kodu JavaScript.

Z czasem jednak JavaScript stawał się coraz bardziej popularny, zaczęto za jego pomocą implementować na stronach internetowych coraz to bardziej skomplikowaną logikę, na froncie (czyli w przeglądarce) zaczęło pojawiać się coraz więcej funkcjonalności i tym samym JavaScript rósł cały czas w siłę. Spośród twórców przeglądarek najlepszą pracę nad silnikiem dla JS wykonywał (i dalej wykonuje 🙂) Google ze swoim Chromem. Silnik ten nazywa się „V8” (nie „wersja ósma”, tylko czyt. „vi eight„) i obecnie jest silnikiem wykonującym kod JavaScript dla takich przeglądarek jak np. Chrome, Opera czy Edge, a więc niemal wszystkich najbardziej popularnych przeglądarek poza Firefoxem. Firefox rozwija swój własny silnik o nazwie SpiderMonkey.

A gdyby tak uruchomić JavaScript na serwerze? 🤔

Pewnego dnia jeden wyjątkowo zdolny programista (Ryan Dahl) pomyślał sobie, że skoro język JavaScript jest tak popularny, najlepszym silnikiem, który go wykonuje, jest silnik V8, a ten silnik to w sumie też jest kod, to może da się go uruchomić nie tylko w przeglądarce (do tego momentu kod JS mógł być wykonany tylko w przeglądarce), ale też bezpośrednio na serwerze? Dzięki temu programiści znający język JavaScript mogliby dalej pisać w tym właśnie języku, nie musieliby się uczyć czegoś nowego, ale teraz ich kod obsługiwałby zadania, które są typowe dla backend-u (np. autoryzacja, komunikacja z bazą danych itp.).

Udało mu się to w 2009 r., nazwał swój projekt Node.js i cóż… rozpoczął swego rodzaju nowy rozdział języka JavaScript. Od teraz programiści, którzy znali składnię JavaScript, mogli pisać w tym samym języku kod, który będzie uruchamiał się zarówno w przeglądarce, jak i na serwerze 😲. W celu uruchomienia kodu JavaScript na serwerze wystarczy zainstalować na nim środowisko uruchomieniowe Node.js (można to zrobić zarówno na systemie Linux, Windows, jak i MacOS) i voilà – kod JavaScript możemy uruchomić poza przeglądarką internetową.

Podsumowanie

Podsumowując, Node.js jest środowiskiem uruchomieniowym dla języka JavaScript. Uruchamiany jest na serwerze i za jego pomocą możemy wykonywać zadania typowo backend-owe, pisząc kod w języku JavaScript.

Język JavaScript powstał na potrzeby frontend-u i tam jest najczęściej używany, ale od kilku lat, dzięki Node.js, możemy również wykonywać go na serwerze. JavaScript to tylko język programowania – poznajemy go ucząc się składni, dobrych praktyk, wzorców itp. Wykorzystując go na froncie, będziemy pisali dynamiczne strony, ładowali dane z API, sortowali i filtrowali tabele itp. Na backendzie (dzięki Node.js) wykorzystamy go do zupełnie innych zadań. Najczęściej będzie to tworzenie API, aczkolwiek możliwości są oczywiście dużo większe 🙂.