Quest: Node.js – start

Node.js to środowisko uruchomieniowe JavaScript stworzone po to, aby można było wykonywać kod JS poza przeglądarką — najczęściej na serwerze. Najważniejsze cechy Node.js:

  • Oparte na silniku JavaScript V8, który napędza Google Chrome.
  • Asynchroniczność i model zdarzeniowy: Node działa w jednym wątku, ale obsługuje wiele operacji wejścia/wyjścia asynchronicznie, więc świetnie nadaje się do aplikacji, które muszą obsługiwać np. wielu użytkowników jednocześnie.
  • Dzięki bibliotekom jak Express można szybko tworzyć serwery aplikacji webowych: HTTP, API, aplikacje czasu rzeczywistego.
  • Ekosystem NPM (Node Package Manager) Node posiada największy ekosystem bibliotek na świecie. Są tam gotowe pakiety do niemal wszystkiego.
  • Wieloplatformowy: Działa na Windows, Linux, macOS, a także na serwerach w chmurze i w środowiskach serverless.

Zastosowania Node.js

  1. API oraz backend aplikacji webowych / mobilnych
  2. Aplikacje czasu rzeczywistego (czaty, powiadomienia, WebSocket)
  3. Streaming audio / video i obsługa dużych danych
  4. Narzędzia developerskie: cli, bundlery i build tools (do SCSS, JSX, TypeScript) 1
  5. IoT: sterowanie urządzeniami, komunikacja z sensorami
  6. Serverless i chmura (kod, który działa tylko wtedy, gdy jest potrzebny)
  7. Przetwarzanie asynchroniczne: kolejki zadań, generowanie raportów/plików

Zadanie

Utwórzmy prosty serwer, który udostępnia pliki z katalogu /www w formie klikalnej listy, ale ukryje jeden z plików. Serwer będzie też logował aktywność użytkowników.

  1. Zainstaluj Node.js z nodejs.org i sprawdź czy działa
  2. Utwórz folder projektu
  3. Zainicjuj projekt Node
    To utworzy plik package.json.
  4. Zainstaluj Express
  5. Utwórz folder www a w nim pliki: test.txt hello.html tajny.html obrazek.png
  6. Utwórz plik server.js (poza katalogiem /www) i wklej kod serwera:
# 1.
node -v
npm -v

# 2.
mkdir node-express-demo
cd node-express-demo

# 3.
npm init -y

# 4.
npm install express

# 5.
mkdir www

const express = require("express");
const fs = require("fs");
const path = require("path");

const app = express();

// Middleware 1: prosty logger
app.use((req, res, next) => {
  console.log(req.method, req.url);
  next();
});

// Middleware 2: ukrywa tajny.html
app.use((req, res, next) => {
  req.hidden = "tajny.html";
  next();
});

// Trasa główna – lista plików
app.get("/", (req, res) => {
  const files = fs.readdirSync(path.join(__dirname, "www"))
    .filter(f => f !== req.hidden);

  res.send(`
    <h1>Pliki w /www</h1>
    <ul>
      ${files.map(f => `<li><a href="/${f}" target="_blank">${f}</a></li>`).join("")}
    </ul>
  `);
});

// Serwowanie plików z /www
app.use(express.static(path.join(__dirname, "www")));

app.listen(3000, () => console.log("http://localhost:3000"));

Uruchom serwer i sprawdź jak działa w przeglądarce i jak loguje

node server.js

Kilka pojęć które warto rozumieć:

  • Express – lekki framework dla Node.js ułatwiający tworzenie serwerów HTTP i API.
  • Middleware – funkcja pośrednicząca, która może modyfikować żądanie, odpowiedź lub przepływ działania aplikacji Express.
  • Trasa główna – podstawowy endpoint aplikacji (np. / ), który odpowiada na główne żądanie użytkownika.
  • fs i path – moduły Node.js umożliwiające odpowiednio pracę z plikami oraz zarządzanie ścieżkami w systemie plików.
  • npm – menedżer pakietów dla Node.js, który pozwala instalować, aktualizować i zarządzać bibliotekami oraz narzędziami potrzebnymi w projektach JavaScript (jak Express, React czy Vite)
  • Bundlery i build tools – narzędzia, które łączą, optymalizują i przygotowują kod frontendowy do produkcji.

    Bundlery i build tools to narzędzia, które zbierają wiele plików frontendowych (JavaScript, CSS, obrazy) i łączą je w zoptymalizowane pakiety gotowe do uruchomienia w przeglądarce. Usuwają zbędny kod, kompresują pliki, dzielą aplikację na mniejsze części i automatycznie rozwiązują zależności między modułami. Dzięki nim aplikacje wczytują się szybciej, są bardziej wydajne i łatwiejsze do rozwijania.

    W kontekście korzystania z Vite + React to narzędzia, które błyskawicznie uruchamiają środowisko deweloperskie, podając kod Reacta bezpośrednio do przeglądarki dzięki natywnym modułom ES, a jednocześnie generują szybki i zoptymalizowany build produkcyjny. Vite automatycznie łączy i optymalizuje pliki, zarządza zależnościami, kompresuje kod i obsługuje JSX oraz TypeScript, dzięki czemu React działa szybko i wygodnie zarówno podczas developmentu, jak i na produkcji. Dzięki temu deweloper może skupić się na pisaniu komponentów, a nie na konfiguracji narzędzi.

  1. To do tego najczęściej będziemy potrzebować node.js ↩︎

2 komentarze

Twój komentarz

Zapisz moje dane, adres e-mail i witrynę w przeglądarce aby wypełnić dane podczas pisania kolejnych komentarzy.