56 lines
2.5 KiB
Markdown
56 lines
2.5 KiB
Markdown
# 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
|
||
|