# 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 http://localhost:3000