• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 Next.js 게시판 Router Handler질문입니다.

Router Handler질문입니다.

3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 글쓴이
  • #103644

    박현우
    참가자
    프로젝트에서 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)) 이런식의 코드가 공식홈페이지에 쓰여져있어서 해봤는데 안됩니다 어떻게 리다이렉트를 시켜줘야하나요??
    
    
    #103654

    codingapple
    키 마스터
    form태그로 post요청하면 아마 서버에서 redirect 안되는 이슈가 있어서 ajax쓰거나 해야합니다
    #103667

    박현우
    참가자
    감사합니다~~
3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠