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
- API oraz backend aplikacji webowych / mobilnych
- Aplikacje czasu rzeczywistego (czaty, powiadomienia, WebSocket)
- Streaming audio / video i obsługa dużych danych
- Narzędzia developerskie: cli, bundlery i build tools (do SCSS, JSX, TypeScript) 1
- IoT: sterowanie urządzeniami, komunikacja z sensorami
- Serverless i chmura (kod, który działa tylko wtedy, gdy jest potrzebny)
- 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.
- Zainstaluj Node.js z nodejs.org i sprawdź czy działa
- Utwórz folder projektu
- Zainicjuj projekt Node
To utworzy plik package.json. - Zainstaluj Express
- Utwórz folder www a w nim pliki: test.txt hello.html tajny.html obrazek.png
- 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.
- To do tego najczęściej będziemy potrzebować node.js ↩︎
tuff quest
szczerze szacun mega super skibidi quest robie go siedzac na o’block