서버 엔진
Nuxt는 새로운 서버 엔진인 Nitro로 구동됩니다.
Nuxt를 구축하면서, 우리는 새로운 서버 엔진인 Nitro를 만들었습니다.
Nitro는 많은 기능을 제공합니다:
- Node.js, 브라우저, 서비스 워커 등 다양한 플랫폼 지원.
- 기본적으로 서버리스 지원.
- API 경로 지원.
- 자동 코드 분할 및 비동기 로드 청크.
- 정적 + 서버리스 사이트를 위한 하이브리드 모드.
- 핫 모듈 리로딩을 지원하는 개발 서버.
API 레이어
서버 API 엔드포인트와 미들웨어는 내부적으로 h3를 사용하는 Nitro에 의해 추가됩니다.
주요 기능은 다음과 같습니다:
- 핸들러는 자동으로 처리되는 JSON 응답을 위해 객체/배열을 직접 반환할 수 있습니다.
- 핸들러는 프로미스를 반환할 수 있으며, 이는 대기됩니다 (
res.end()
및next()
도 지원). - 본문 파싱, 쿠키 처리, 리디렉션, 헤더 등을 위한 헬퍼 함수 제공.
자세한 정보는 h3 문서를 참조하세요.
이것도 참고 guide > directory-structure > server#server-routes직접 API 호출
Nitro는 전역적으로 사용 가능한 $fetch
헬퍼를 통해 경로의 '직접' 호출을 허용합니다. 브라우저에서 실행될 경우 서버에 API 호출을 하지만, 서버에서 실행될 경우 관련 함수를 직접 호출하여 추가 API 호출을 절약합니다.
$fetch
API는 ofetch를 사용하며, 주요 기능은 다음과 같습니다:
- JSON 응답의 자동 파싱 (필요 시 원시 응답에 접근 가능)
- 요청 본문과 매개변수는 자동으로 처리되며, 올바른
Content-Type
헤더가 설정됩니다.
$fetch
기능에 대한 자세한 정보는 ofetch를 참조하세요.
타입이 지정된 API 경로
API 경로(또는 미들웨어)를 사용할 때, Nitro는 res.end()
를 사용하여 응답을 보내는 대신 값을 반환하는 한 이러한 경로에 대한 타입을 생성합니다.
이러한 타입은 $fetch()
또는 useFetch()
를 사용할 때 접근할 수 있습니다.
독립형 서버
Nitro는 node_modules
와 독립적인 독립형 서버 dist를 생성합니다.
Nuxt 2의 서버는 독립형이 아니며, nuxt start
를 실행하여 Nuxt 코어의 일부가 포함되어야 합니다 (nuxt-start
또는 nuxt
배포판 사용) 또는 사용자 정의 프로그래매틱 사용이 필요하며, 이는 취약하고 고장이 나기 쉬우며 서버리스 및 서비스 워커 환경에 적합하지 않습니다.
Nuxt는 nuxt build
를 실행할 때 .output
디렉토리에 이 dist를 생성합니다.
출력에는 모든 환경에서 Nuxt 서버를 실행하고 (실험적인 브라우저 서비스 워커 포함!) 정적 파일을 제공할 수 있는 런타임 코드가 포함되어 있어 JAMstack을 위한 진정한 하이브리드 프레임워크가 됩니다. 추가로, Nuxt는 멀티 소스 드라이버와 로컬 자산을 지원하는 네이티브 스토리지 레이어를 구현합니다.
이것도 참고 github.com > nitrojs > nitro※이 페이지는 Nuxt.js 공식 문서의 비공식 번역 페이지입니다.
공식 문서의 해당 페이지는 여기 있습니다:
https://nuxt.com/docs/3.x/guide/concepts/server-engine