Q.
import { NextApiRequest, NextApiResponse } from "next"
import { NextRequest, NextResponse } from "next/server"
import ์ฐจ์ด?
CAHT.
Next.js์ app
๋๋ ํ ๋ฆฌ์์ ์ฌ์ฉํ๋ ๋ผ์ฐํ
๋ฐฉ์๊ณผ pages
๋๋ ํ ๋ฆฌ์์ ์ฌ์ฉํ๋ ๋ผ์ฐํ
๋ฐฉ์์ ์ฝ๊ฐ ๋ค๋ฅด๋ค. ๊ฐ ๋ผ์ฐํ
๋ฐฉ์์์ ์ฌ์ฉ๋๋ import
๋ฌธ๋ ๋ค๋ฅด๋ค. ์ด ๋ ๊ฐ์ import ์ฐจ์ด์ ๋ํด ์ค๋ช
ํ๊ฒ ๋ค.
1. NextApiRequest
์ NextApiResponse
(Pages ๋๋ ํ ๋ฆฌ)
NextApiRequest
์ NextApiResponse
๋ Next.js์ pages
๋๋ ํ ๋ฆฌ์์ API ๋ผ์ฐํธ๋ฅผ ์ ์ํ ๋ ์ฌ์ฉ๋๋ค. ์ด ๋ฐฉ์์ Next.js 12 ์ด์ ๋ถํฐ ์ฌ์ฉ๋๋ ์ ํต์ ์ธ ๋ฐฉ์์ด๋ค.
์ฌ์ฉ ์์ (pages/api/example.js)
import { NextApiRequest, NextApiResponse } from 'next';
export default function handler(req = NextApiRequest, res = NextApiResponse) {
res.status(200).json({ message: 'Hello from API Route in pages!' });
}
- NextApiRequest: Next.js์
req
๊ฐ์ฒด๋ก, Node.js์IncomingMessage
๋ฅผ ํ์ฅํ ๊ฐ์ฒด์ด๋ค. - NextApiResponse: Next.js์
res
๊ฐ์ฒด๋ก, Node.js์ServerResponse
๋ฅผ ํ์ฅํ ๊ฐ์ฒด์ด๋ค.
์ด ๋ฐฉ์์ Next.js 13 ์ดํ์๋ pages
๋๋ ํ ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์ ์ฌ์ฉ๋๋ค.
2. NextRequest
์ NextResponse
(App ๋๋ ํ ๋ฆฌ)
NextRequest
์ NextResponse
๋ Next.js 13์์ ๋์
๋ ์๋ก์ด app
๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ์์ ์ฌ์ฉํ๋ ๋ผ์ฐํ
๋ฐฉ์์ด๋ค. ์ด ๋ฐฉ์์ React Server Components
๋ฅผ ์ง์ํ๋ฉฐ, pages
๋๋ ํ ๋ฆฌ์๋ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ๋์ํ๋ค.
์ฌ์ฉ ์์ (app/api/example/route.js)
import { NextRequest, NextResponse } from 'next/server';
export async function GET(req = NextRequest) {
return NextResponse.json({ message: 'Hello from API Route in app!' });
}
- NextRequest: Next.js์
req
๊ฐ์ฒด๋ก, Web API์Request
๊ฐ์ฒด๋ฅผ ํ์ฅํ ๊ฐ์ฒด์ด๋ค. - NextResponse: Next.js์
res
๊ฐ์ฒด๋ก, Web API์Response
๊ฐ์ฒด๋ฅผ ํ์ฅํ ๊ฐ์ฒด์ด๋ค.
์ด ๋ฐฉ์์ Next.js์ ์ต์ ๊ธฐ๋ฅ์ ํ์ฉํ๋ฉฐ, app
๋๋ ํ ๋ฆฌ๋ฅผ ์ฌ์ฉํ ๋ ์ฃผ๋ก ์ฌ์ฉ๋๋ค.
์ฃผ์ ์ฐจ์ด์ ์์ฝ
- ๋ผ์ฐํธ ์ ์ ์์น:
NextApiRequest
์NextApiResponse
:pages
๋๋ ํ ๋ฆฌ์์ ์ฌ์ฉ.NextRequest
์NextResponse
:app
๋๋ ํ ๋ฆฌ์์ ์ฌ์ฉ.
- ํ์ฅ๋ ๊ฐ์ฒด:
NextApiRequest
/NextApiResponse
: Node.js์IncomingMessage
์ServerResponse
๋ฅผ ํ์ฅ.NextRequest
/NextResponse
: Web API์Request
์Response
๋ฅผ ํ์ฅ.
- ์ฌ์ฉ ํจํด:
NextApiRequest
/NextApiResponse
: ์ ํต์ ์ธ Node.js ์คํ์ผ์ API ๋ผ์ฐํธ.NextRequest
/NextResponse
: ์ต์ Next.js์ ์๋ฒ ์ปดํฌ๋ํธ ์คํ์ผ API ๋ผ์ฐํธ.
Next.js 13 ์ดํ์๋ app
๋๋ ํ ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ต์ ๊ธฐ๋ฅ์ ํ์ฉํ๋ ๊ฒ์ด ๊ถ์ฅ๋๋ค. ์ด๋ React์ ์๋ฒ ์ปดํฌ๋ํธ์ ๋ ๋์ ํตํฉ์ ์ ๊ณตํ๊ณ , ์๋ก์ด ๊ธฐ๋ฅ์ ์ง์ํ๊ธฐ ๋๋ฌธ์ด๋ค. ํ์ง๋ง ๊ธฐ์กด ํ๋ก์ ํธ๋ ์ ํต์ ์ธ ๋ผ์ฐํ
๋ฐฉ์์ ์ ์งํ๊ณ ์ถ๋ค๋ฉด pages
๋๋ ํ ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
๊ฒฐ๋ก
import { NextApiRequest, NextApiResponse } from "next" > page route
import { NextRequest, NextResponse } from "next/server" > app route
'๊ฐ๋ ์ ๋ฆฌ > AI QnA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
SQL ON UPDATE CASCADE : ์ธ๋ํค ์ฐ๊ฒฐ ์ ๋๊ธฐํ (0) | 2024.06.20 |
---|
๋๊ธ