Wprowadzenie do Node.js i Express.js

JavaScript już dawno przestał być tylko językiem do manipulowania przeglądarką użytkownika. Dzięki Node.js, programiści mogą teraz wykorzystywać JavaScript na serwerze, tworząc aplikacje backendowe. Express.js to jeden z najpopularniejszych frameworków webowych dla Node.js, który znacznie ułatwia tworzenie serwisów internetowych i API. W tym artykule przyjrzymy się bliżej tym dwóm technologiom.

Wprowadzenie do Node.js

Co to jest Node.js i dlaczego warto go używać?

Node.js to środowisko uruchomieniowe JavaScript, które działa na silniku V8 od Google, tym samym silniku, który napędza przeglądarkę Chrome. Dzięki temu możemy uruchamiać kod JavaScript poza przeglądarką, np. na serwerze. Node.js jest asynchroniczny i zdarzeniowy, co czyni go doskonałym wyborem do budowy aplikacji, które muszą obsługiwać wiele jednoczesnych zapytań, takich jak serwisy internetowe i API.

Dlaczego warto korzystać z Node.js?

  • Asynchroniczność: Node.js korzysta z modelu asynchronicznego wejścia/wyjścia, co sprawia, że jest bardzo wydajny w kontekście przetwarzania wielu jednoczesnych żądań.
  • Jednolity język: Możliwość pisania kodu backendowego i frontendowego w JavaScript sprawia, że możemy używać tego samego języka w całym stosie aplikacji, co ułatwia współpracę w zespołach.
  • Ekosystem: Node.js ma ogromny ekosystem bibliotek i modułów dostępnych za pośrednictwem npm (Node Package Manager), co ułatwia szybkie rozpoczęcie pracy nad projektem.

Instalacja Node.js i wprowadzenie do npm/yarn

Node.js można zainstalować bezpośrednio z oficjalnej strony nodejs.org. Instalator instaluje również npm, który jest menedżerem pakietów, służącym do zarządzania bibliotekami i zależnościami w projekcie.

Alternatywnie można korzystać z yarn, który również jest popularnym menedżerem pakietów, uważanym przez niektórych za szybszy i bardziej przewidywalny.

Aby zainstalować Node.js:

  1. Pobierz instalator z nodejs.org.
  2. Uruchom instalator i postępuj zgodnie z instrukcjami.

Po instalacji można sprawdzić wersję Node.js i npm:

				
					node -v
npm -v

				
			

Podstawowe moduły Node.js

Node.js ma wbudowane moduły, które znacznie ułatwiają tworzenie różnych aplikacji. Poniżej kilka najważniejszych:

  • fs: Służy do pracy z systemem plików. Umożliwia czytanie, zapisywanie, usuwanie i manipulowanie plikami.

				
					const fs = require('fs');

fs.readFile('example.txt', 'utf8', (err, data) => {
  if (err) throw err;
  console.log(data);
});

				
			
  • http: Umożliwia tworzenie serwera HTTP. Można za jego pomocą stworzyć prostą aplikację serwerową.
				
					const http = require('http');

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello, World!\n');
});

server.listen(3000, () => {
  console.log('Server running at http://localhost:3000/');
});

				
			
  • path: Ułatwia prace z ścieżkami plików. Pozwala na budowanie ścieżek w sposób niezależny od systemu operacyjnego.
				
					const path = require('path');

const fullPath = path.join(__dirname, 'folder', 'file.txt');
console.log(fullPath);

				
			

Wprowadzenie do Express.js

Co to jest Express.js i jakie problemy rozwiązuje?

Express.js to minimalistyczny framework webowy dla Node.js. Ułatwia tworzenie serwisów internetowych i API, dostarczając prosty i elastyczny interfejs do obsługi żądań HTTP. Bez Express, tworzenie aplikacji przy użyciu samego modułu http może być czasochłonne i skomplikowane.

Express oferuje:

  • Routing: Pozwala na prostą obsługę różnych endpointów.
  • Middleware: Umożliwia rozszerzanie funkcji aplikacji, np. do uwierzytelniania, logowania czy parsowania danych z formularzy.
  • Modularność: Ułatwia organizowanie kodu w moduły i ścieżki.

Tworzenie pierwszego projektu Express

Aby rozpocząć pracę z Express, należy zainstalować go w naszym projekcie. Najpierw musimy zainicjować nasz projekt Node.js:

				
					mkdir my-express-app
cd my-express-app
npm init -y

				
			

Następnie instalujemy Express:

				
					npm install express

				
			

Po instalacji możemy stworzyć naszą pierwszą aplikację Express.

Instalacja Express i struktura projektu

Przykładowa struktura projektu Express wygląda tak:

				
					my-express-app/
  ├── node_modules/
  ├── package.json
  ├── app.js

				
			

Plik app.js to nasz główny plik, w którym uruchomimy aplikację.

				
					// app.js
const express = require('express');
const app = express();
const port = 3000;

app.get('/', (req, res) => {
  res.send('Hello, World!');
});

app.listen(port, () => {
  console.log(`Server running at http://localhost:${port}/`);
});

				
			

W tym prostym przykładzie używamy metody app.get() do obsługi żądań GET na głównej ścieżce (’/’). Następnie uruchamiamy serwer na porcie 3000.

Pierwsza Aplikacja

Tworzenie pierwszej prostej aplikacji

Stworzymy teraz prostą aplikację, która wyświetli komunikat „Hello World” po wejściu na stronę główną.

  1. Stwórz plik app.js w głównym folderze projektu.
  2. Skopiuj poniższy kod:
				
					const express = require('express');
const app = express();
const port = 3000;

app.get('/', (req, res) => {
  res.send('Hello, World!');
});

app.listen(port, () => {
  console.log(`Serwer działa pod adresem http://localhost:${port}`);
});

				
			
  1. Uruchom serwer:
				
					node app.js

				
			

Po uruchomieniu aplikacji, otwórz przeglądarkę i wpisz http://localhost:3000. Powinieneś zobaczyć komunikat „Hello, World!”.

Przegląd funkcji listen() i routing podstawowy

  • listen(port, callback): Funkcja listen() uruchamia serwer HTTP na wskazanym porcie. Opcjonalnie przyjmuje funkcję zwrotną, która wykona się, gdy serwer zostanie uruchomiony.

				
					app.listen(3000, () => {
  console.log('Serwer działa na porcie 3000');
});

				
			
  • Routing: Express pozwala łatwo definiować różne ścieżki w aplikacji:
				
					app.get('/about', (req, res) => {
  res.send('To jest strona About');
});

app.get('/contact', (req, res) => {
  res.send('To jest strona Contact');
});

				
			

Możemy definiować różne ścieżki za pomocą metod HTTP, takich jak GET, POST, PUT, DELETE. Dzięki temu możemy tworzyć pełnoprawne API.

Podsumowanie

Node.js i Express.js to potężne narzędzia do tworzenia aplikacji backendowych. Node.js, dzięki swojej asynchroniczności, doskonale sprawdza się w obsłudze wielu jednoczesnych żądań. Express natomiast ułatwia tworzenie aplikacji, organizację kodu i obsługę żądań HTTP. Dzięki tym narzędziom możemy zbudować zarówno proste, jak i skomplikowane aplikacje webowe w efektywny sposób.

Mamy nadzieję, że ten przewodnik pomoże Ci w rozpoczęciu przygody z Node.js i Express.js. Spróbuj samodzielnie stworzyć kilka prostych aplikacji, aby lepiej zrozumieć, jak działają te technologie.