Template
35 lines
1.6 KiB
Markdown
35 lines
1.6 KiB
Markdown
# ElysiaJS Boilerplate
|
|
|
|
Szablon startowy do zajęć z ElysiaJS: Bun + ElysiaJS + TypeScript, z
|
|
podpiętym MySQL (Drizzle ORM) i Redisem do wspólnych baz danych z kursu.
|
|
|
|
## Uruchomienie
|
|
```bash
|
|
bun install
|
|
bun run db:push # tworzy tabelę `notes` z src/db/schema.ts
|
|
bun run dev
|
|
```
|
|
|
|
Wejdź na http://localhost:3000/swagger - tam znajdziesz dokumentację API
|
|
(generowaną automatycznie z endpointów w `src/index.ts`).
|
|
|
|
## Co tu jest
|
|
- `src/index.ts` - główna aplikacja: przykładowe endpointy pokazujące odczyt
|
|
i zapis do MySQL (`src/db`) oraz do Redisa (`src/redis.ts`). Usuń te
|
|
przykłady, gdy zrozumiesz zasadę działania i zaczniesz pisać własny kod.
|
|
- `src/db/schema.ts` - definicje tabel w Drizzle. Dodawaj tu kolejne tabele,
|
|
a potem uruchom `bun run db:push`, żeby zsynchronizować je z bazą MySQL
|
|
(bez plików migracji - `push` po prostu porównuje schemat z bazą na żywo).
|
|
- `src/db/index.ts` / `src/redis.ts` - gotowe klienty, które czytają dane
|
|
połączenia ze zmiennych środowiskowych. W Twoim workspace w Coderze są one
|
|
już ustawione (`MYSQL_*`, `REDIS_*`) - nie musisz nigdzie wpisywać hasła.
|
|
- `.env.example` - potrzebne tylko, jeśli chcesz uruchomić projekt poza
|
|
workspace'em w Coderze, na własnym MySQL/Redis.
|
|
|
|
## Uwagi
|
|
- Twój użytkownik Redis widzi tylko klucze pod `student:<twoja-nazwa>:*`
|
|
(wymuszone po stronie serwera) - dlatego `src/index.ts` dodaje ten prefiks
|
|
do kluczy w cache. Klucze spoza tego prefiksu zostaną odrzucone.
|
|
- Twój użytkownik MySQL ma dostęp tylko do swojej własnej bazy - nie musisz
|
|
nic dodatkowo podawać poza tym, co jest już w `MYSQL_DATABASE`.
|