Przykład MVC CRUD w Node.js + Express + SQLite + Sequelize
Przykład aplikacji CRUD w NodeJS, framework Express i ORM
Połączenie Node.js + Express + SQLite + Sequelize tworzy kompletny, lekki stos technologiczny do budowy aplikacji sieciowych z bazą danych w jednym pliku. Każdy z elementów pełni odmienną funkcję w architekturze systemu.
Node.js to środowisko wykonawcze JavaScript działające po stronie serwera, oparte na asynchronicznym modelu zdarzeniowym i bibliotece libuv. Obsługa wejścia/wyjścia jest nieblokująca, co umożliwia efektywne skalowanie przy wielu jednoczesnych połączeniach. Mechanizm event loop minimalizuje koszt przełączania kontekstu w porównaniu z podejściem wielowątkowym.
Express to minimalistyczny framework HTTP dla Node.js, zapewniający: routing i obsługę tras REST API, middleware do przetwarzania zapytań, wsparcie dla szablonów widoków, sesji, statycznych plików. Express działa jako warstwa logiki biznesowej i komunikacji z klientem, pozostawiając architekturę aplikacji w gestii programisty.
SQLite - to lekka relacyjna baza danych zapisywana w jednym pliku. Cechy charakterystyczne: brak modelu klient–serwer (biblioteka wbudowana w aplikację), transakcyjność zgodna z ACID, wsparcie SQL-92. Idealna do aplikacji lokalnych, IoT, prototypów oraz środowisk z ograniczonymi zasobami obliczeniowymi.
Sequelize - to ORM (Object-Relational Mapping) dla Node.js, integrujący różne silniki SQL, w tym SQLite. Zapewnia: deklaratywne definiowanie modeli danych, walidację i mapowanie obiektów na rekordy, migracje schematu bazy, abstrakcję nad zapytaniami SQL (metody vs. surowe SQL).
- Logika serwera: Node.js + Express ROLA: Obsługa żądań HTTP, przepływu danych
- Warstwa persystencji SQLite ROLA: Trwałe przechowywanie danych SQL
- Mapowanie obiektowo-relacyjne Sequelize ROLA: Łączy kod aplikacji z bazą danych
Struktura katalogów
my-app/
├── app.js
├── package.json
├── config/
│ └── database.js
├── models/
│ └── customer.js
├── controllers/
│ └── customerController.js
├── routes/
│ └── customerRoutes.js
└── views/
├── layout.ejs
├── index.ejs
├── create.ejs
├── edit.ejs
└── show.ejs
Instalacja
Po sklonowaniu repozytorium otwórz folder projektu w Visual Studio Code i w temrminalu:
npm install
npm start
Uruchomienie serwera
npm run start