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

home2 게시판 Next.js 게시판 API handler should not return a value, received object. 질문

API handler should not return a value, received object. 질문

  • 이 주제에는 7개 답변, 3명 참여가 있으며 snz1 년, 4 월 전에 전에 마지막으로 업데이트했습니다.
8 글 보임 - 1 에서 8 까지 (총 8 중에서)
  • 글쓴이
  • #94673

    JUN-BANANA
    참가자
    'app/write/page.js" 에서
    'use client'
    import {useState} from "react";
    export default async function Write(){
    return(
            <div className="p-20">
                <h1>글작성 테스트</h1>
                <form action="/api/post/new" method="POST">
                    <input name="title" placeholder="글제목"/>
                    <input name="content" placeholder="글내용"/>
                    <input name = "detail" placeholder="세부 내용"/>
                    <button type="submit">전송</button>
                </form>
            </div>
        )
    }을 POST 했을때 DB에 저장하는 내용 "pages/api/post/new.js" 에
    import {connectDB} from "@/util/databast";
    export default async function handler(req ,res) {
        if(req.method === 'POST') {
            const db = (await connectDB).db('TestNextJs')
            let result = await db.collection('post').insertOne(req.body)
            // console.log(req.body)
            // if(req.body == null){
            //     return res.status(500)
            // }
            return res.status(200).redirect('/')
        }
    } 이렇게 적었는데 POST 요청시 db 저장까지는 되는데  설정한 주소로 리디렉션이 이루어 지지 않고 리디렉션을 적지 않고 
    "return res.status(200)" 만 적어도 "API handler should not return a value, received object." 이 계속 뜨고 대기 상태에 들어갑니다.
     왜 리턴이 이루어지지 않는 건가요?
    
    
    #94675

    codingapple
    키 마스터
    return은 빼봅시다
    #94734

    JUN-BANANA
    참가자
    import {connectDB} from "@/util/databast";
    export default async function handler(req ,res) {
        if(req.method === 'POST') {
            const db = (await connectDB).db('TestNextJs')
            let result = await db.collection('post').insertOne(req.body)
            console.log(req.body)
            // if(req.body == null){
            //     return res.status(500)
            // }
            res.status(200).redirect('/')
        }
    } 
    그래도 안되는것 같습니다. 전체적인 문제가 있는 건가요?
    #94745

    codingapple
    키 마스터
    res.redirect(302, '/list') 라고씁시다
    #94747

    JUN-BANANA
    참가자
    되었습니다. 공식 문서에도 이런 말은 없는것 같던데 버전의 차이 인가요?
    #94748

    JUN-BANANA
    참가자
    res.redirect(302, '/') 왜 302를 200으로 하면 안되는 건가요?
    #94783

    codingapple
    키 마스터
    nextjs가 정한 문법이라 그렇게만 써야되는듯요
    #115666

    snz
    참가자
    동일한 문제 있었는데 return 제외하니 작동하네요.
    감사합니다. :)
8 글 보임 - 1 에서 8 까지 (총 8 중에서)
  • 답변은 로그인 후 가능합니다.

About

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

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

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