기존 next.js 버전에서는 API route를 만들어서 post, delete, get 등의 모든 요청을 보냈다.
하지만 최신버전(14)에는 이 방법 뿐만 아니라 더 편한 방법이 도입되었다.
클라이언트에서 fetch를 사용해 서버에 데이터를 보낸다.
const onClick = async () => {
const response = await fetch("/www/users", {
method: "POST", // POST 메서드를 통해 데이터를 보냄
body: JSON.stringify({
username: "yeah", // username과 password를 JSON 형식으로 보냄
password: "1234",
}),
});
console.log(await response.json()); // 서버에서 반환된 데이터를 JSON으로 출력
};
UI를 렌더링 하지 않는다!!/www/users/route.ts이 경로일 필요는 없지만 route.ts는 꼭 필요함 (www 대신 api도 괜찮음)POST 요청 처리
export async function POST(request: NextRequest) {
const data = await request.json(); // 클라이언트에서 보낸 JSON 데이터를 파싱
console.log("log the user in!!!"); // 서버에서 로깅
return Response.json(data); // 클라이언트에 데이터를 JSON으로 반환
}
GET 요청 처리
export async function GET(request: NextRequest) {
console.log(request); // GET 요청 정보를 로깅
return Response.json({
ok: true, // JSON 형식으로 응답
});
}
아직 데이터를 요청하고 그걸 받아서 뿌리는게 익숙치는 않아서 어렵지만 프론트엔드 개발자가 되기 위해서는 꼭 알아야 하는 개념이니 더 공부해야겠다!!!