Przejdź do głównej zawartości

Przepisy na Node.js

Wybrałeś Node.js jako runtime backendu i teraz musisz dostarczyć API, które nie padnie pod obciążeniem w piątkowy wieczór. Te przepisy dają Ci prompty gotowe do użycia w produkcji, które generują idiomatyczny kod Node.js — nie szablonowy kod Express z 2015 roku bez obsługi błędów.

  • Prompty do generowania REST API z TypeScript, walidacją i obsługą błędów
  • Wzorce autentykacji i autoryzacji (JWT, session, OAuth)
  • Integracje z bazami danych (Prisma, TypeORM, Drizzle)
  • Wzorce kolejek tła, WebSocket i real-time
  • Konfiguracje testowania dla Jest, Vitest i Supertest

Scenariusz: Zaczynasz nowy serwis Node.js i chcesz skalowalną strukturę z oddzielnymi warstwami dla routingu, logiki biznesowej i dostępu do danych.

Oczekiwany output: Struktura katalogów, pliki konfiguracyjne TypeScript, container DI, przykładowy moduł users i testy.


Przepis 2: REST API CRUD z walidacją i obsługą błędów

Dział zatytułowany „Przepis 2: REST API CRUD z walidacją i obsługą błędów”

Scenariusz: Musisz zbudować endpoint API dla zarządzania zasobem produktów z pełną walidacją i spójną obsługą błędów.

Oczekiwany output: Pliki routes, kontrolery, schematy Zod, middleware, error handler i pełny zestaw testów.


Scenariusz: Twoja aplikacja potrzebuje bezpiecznego systemu uwierzytelniania z access/refresh token, aby sesje użytkowników nie wygasały co 15 minut.

Oczekiwany output: Moduł auth z routes, service, middleware, generacją JWT, tabelami DB dla refresh tokens i testami.


Scenariusz: Twoje API jest bombardowane automatycznymi narzędziami i potrzebujesz rozbudowanego rate limiting, aby chronić zasoby serwera.

Oczekiwany output: Rate limiting middleware dla różnych warstw, konfiguracja Redis, helmet + cors setup, logi security i testy.


Scenariusz: Potrzebujesz type-safe database access z migracjami, relacjami i optimistic locking.

Oczekiwany output: Schemat Prisma, pliki migracji, repository classes, service wrapper, optimistic locking logic i testy DB.


Scenariusz: Twoja aplikacja musi przetwarzać czasochłonne zadania (wysyłanie emaili, generowanie raportów, przetwarzanie obrazów) bez blokowania API responses.

Oczekiwany output: BullMQ setup, queue definitions, job processors, QueueService wrapper, Bull Board dashboard i testy.


Scenariusz: Twój dashboard potrzebuje live updates bez pollowania API co sekundę.

Oczekiwany output: WebSocket server, auth handling, room management, message types, Redis integration i testy klienta.


Scenariusz: Debugujesz problem produkcyjny i nie możesz znaleźć powiązanych logów rozproszonych po plikach z niespójnym formatowaniem.

Oczekiwany output: Winston config, request logging middleware, error handlers, child logger utility, redaction logic i testy.


Scenariusz: Musisz wprowadzić breaking changes do API, ale nie możesz zepsuć istniejących klientów.

Oczekiwany output: Multi-version router setup, deprecation headers, logging usage, migration guide i dual-version tests.


Scenariusz: Użytkownicy muszą przesyłać avatary, dokumenty i załączniki — potrzebujesz bezpiecznego file upload flow.

Oczekiwany output: Multer config, walidacja plików, storage handlers (local + S3), routes, DB model i testy.


Scenariusz: Twoja baza danych jest przeciążona powtarzającymi się queries dla rzadko zmieniających się danych.

Oczekiwany output: Redis client setup, CacheService, integracja z repositories, invalidation logic i testy.


Scenariusz: Twoja aplikacja Node.js potrzebuje spójnego deploymentu w dev i produkcji z bazą danych i Redis.

Oczekiwany output: Multi-stage Dockerfile, docker-compose files dla dev i prod, nginx config, health checks i deployment scripts.