MySQL λ°μ΄ν°λ₯Ό Prisma λ‘ λ§μ΄κ·Έλ μ΄μ
μ νκ³ , ν΄λΉ Prisma μ μ κ·Όμ νμλ€.
μ κ·ΌκΉμ§λ μ±κ³΅μ μ΄μλ€. κ·Έν, λλ 컬λΌλͺ
μ λλ₯΄λ©΄ ν΄λΉ 컬λΌλͺ
μ μ€λ¦μ°¨μμΌλ‘ μ λ ¬νκ³ μΆμλ€.
κ·Έλ¬λ, 곡μλ¬Έμμμμ Fetch μ μ΅μ μ λ°μ΄ν°μΊμμ²λ¦¬ λΆλΆλ§κ³ λ μ£Όμ΄μ§κ²μ΄ μμλ€.
μ¬κΈ°μ λ΄κ° μ²μ μλν΄λ³Έκ²μ Fetch μ url μ query λ¬Έμ μΆκ°νμ¬ μμ±ν κ²μ΄λ€.
const fetchData = await fetch('/api/player?column=CA&order=desc');
κ·Έν, next 12 λ²μ μμ μΌλ handler λ°©μμ²λΌ reqμ 쿼리λ₯Ό λ€κ³ μ€λ €κ³ νμλ€.
if (req.query.column === 'CA' && req.query.order === 'desc') {
const users = await client.playerInfo.findMany({
take: 20,
orderBy: {
CA: 'desc',
},
});
return NextResponse.json(users);
}
λ μ€μμμΌλ, 보기μ’κ² μλλκ²μ νμΈνμλ€.
ꡬκΈλ§μ ν΅ν΄ μκ²λ λ°©λ²μ΄λ€.
reqμ url μ new URL λ‘ κ°μ²΄λ³ννμ¬ μ¬μ©νλ λ°©μμ΄λ€.
export async function GET(req: NextApiRequest, res: NextApiResponse) {
// req.urlμ΄ undefinedμΌ μ μκΈ° λλ¬Έμ
if (!req.url) {
return res.status(400).send('URL not provided');
}
const baseUrl = `http://${req.headers.host}`;
// κ°μ²΄ λ³ν
const url = new URL(req.url, baseUrl);
// columnμ κ°μ λ°μμ΄
const column = url.searchParams.get('column');
// orderμ κ°μ λ°μμ΄
const order = url.searchParams.get('order');