프로젝트에서 API Routes가아닌 Router Handler를 사용해야해서 RouteHandler로 연습중입니다.
Fetch로 비동기적으로 하는방법으로는 page.tsx에서 useRouter()로 페이지 리다이렉트 하는방법은 알겠으나 동기적으로 처리할때 리다이렉트를 어떻게
해줘야하는지 모르겠습니다
//웹코드
import { connectDB } from "../../../../util/database";
import { params } from "@/type/param";
import { ObjectId } from "mongodb";
const editContent = async({params}:params) => {
const client = await connectDB;
const db = client.db('board')
let result= await db.collection('post').findOne({_id:new ObjectId(params.id)})
await db.collection('post').updateOne({_id:new ObjectId(params.id)},{$set:{}})
if(result){
return(
<form action='/api/edit' method="POST" >
<input type='hidden' defaultValue={result._id.toString()} name='_id'/>
<input type='text' placeholder='수정' defaultValue={result.title} name='title'/>
<input type='text' placeholder="수정내용" defaultValue={result.content} name='content'/>
<button type="submit">수정하기</button>
</form>
)
}else{
<div>
content를 찾을 수 없음
</div>
}
}
export default editContent;
//서버쪽코드
export async function POST(request: Request) {
const formData = await request.formData()
let idName = formData.get('_id')
let title = formData.get('title')
let content = formData.get('content')
const db = (await connectDB).db('board')
await db.collection('post').updateOne(
{_id:new ObjectId(idName)},
{$set: {title: title, content: content}}
)
return NextResponse.json({title,content})
}
NextResponse.redirect(new URL('/list',request.url)) 이런식의 코드가 공식홈페이지에 쓰여져있어서 해봤는데 안됩니다 어떻게 리다이렉트를 시켜줘야하나요??