NestJS vs Next.js: różne zadania, często jeden projekt

NestJS vs Next.js: framework backendowy czy framework Reacta? | We.Inc

NestJS buduje serwerowe API w Node.js, a Next.js buduje strony w React z odrobiną kodu serwera. Zobacz ten sam endpoint w obu, jak ze sobą współpracują i kiedy potrzebujesz każdego z nich.

NestJS i Next.js nie są rywalami. NestJS to framework do aplikacji serwerowych w Node.js: kontrolery, moduły i wstrzykiwanie zależności dla API. Next.js to framework Reacta do budowania stron internetowych, z Route Handlers do lżejszej pracy backendowej. Małe aplikacje mogą w całości działać w Next.js; większe systemy często umieszczają API w NestJS za frontendem w Next.js.

Do czego służy każdy framework

Poniżej jest jeden endpoint, lista kotów pod GET /cats, napisany jako kontroler NestJS i jako Route Handler w Next.js. Przełączaj przykłady, aby zobaczyć trasę POST i konfigurację, która pozwala stronie Next.js wywoływać API w NestJS.

Najczęściej zadawane pytania

Czy Next.js może zastąpić NestJS?

W małej aplikacji często tak. Route Handlers obsługują GET, POST, PUT, PATCH, DELETE, HEAD i OPTIONS z webowymi API Request i Response. NestJS zasługuje na swoje miejsce, gdy backend rośnie: wiele modułów, zadania w tle, kilku klientów, takich jak aplikacje mobilne, i zespół, który chce narzuconej struktury.

Czy NestJS może renderować strony w React?

Nie jest do tego zbudowany. NestJS zwraca dane, domyślnie serializując obiekty do JSON. Do stron użyj Next.js lub innego frameworka frontendowego.

Czy do NestJS potrzebuję TypeScriptu?

NestJS jest zbudowany w TypeScript i w pełni go obsługuje, a dokumentacja mówi, że nadal można pisać w czystym JavaScript. Prawie każdy przykład i przewodnik używa TypeScriptu, więc spodziewaj się, że też będziesz go używać.

Czy oba powinny być w jednym repozytorium?

Monorepo z dwiema aplikacjami i wspólnym pakietem typów dobrze sprawdza się dla jednego zespołu. Osobne repozytoria pasują do osobnych zespołów z własnymi harmonogramami wydań.

Którego uczyć się najpierw?

Jeśli chcesz opublikować stronę internetową, zacznij od Next.js. Naucz się NestJS, gdy budujesz API, od którego zależy kilka frontendów lub usług.

Co NestJS daje backendowi

Co Next.js daje stronie internetowej

Jak do siebie pasują

Utwórz oba projekty

Utwórz API w NestJS i stronę w Next.js

Instaluje narzędzie wiersza poleceń Nest, tworzy API, a następnie tworzy stronę w sąsiednim folderze.

GET /cats

W NestJS prefiks @Controller('cats') i @Get() budują ścieżkę, a kontroler jest rejestrowany w module. W Next.js ścieżka folderu to URL, a nazwa eksportowanej funkcji to metoda.

POST /cats

NestJS sam parsuje ciało JSON przez @Body() i domyślnie odpowiada na POST statusem 201. Route Handler w Next.js odczytuje ciało przez request.json() i sam ustawia status.

Oba razem

NestJS przenosi się na port 3001 i dopuszcza origin strony. Strona w Next.js to Server Component, więc fetch działa na serwerze, a API_URL pozostaje prywatny.

Wybierz przykład

NestJS

Kopiuj NestJS

Przykład {n} z {v}

Zacznij za darmo · Bez karty kredytowej

Powiązane: Poradniki

Produkt

Dla kogo

Funkcje

Zasoby

Firma

Mapa strony