(ListItme.js)
'use client'
import Link from 'next/link'
function ListItem(props){
return (
<div>
{
props.result.map((data, index)=>
<div className="list-item" key={index}>
<Link href={'/detail/' + data._id}>
<h4>{data.title}</h4>
</Link>
<Link href={'/edit/' + data._id} className="list-btn">✏️</Link>
<span onClick={()=>{
fetch('/api/post/delete', {
method : 'DELETE', body : data._id
})
}}>🗑️</span>
<p>1월 1일</p>
</div>
)
}
</div>
)
}
export default ListItem
(delete.js)
import connectDB from "@/util/database";
import { ObjectId } from "mongodb";
export default async function handler(req, res){
const { _id } = req.body;
if(req.method == "DELETE"){
console.log('delete')
// console.log(req)
console.log(req.body)
// const db = (await connectDB).db("forum")
// let result = await db.collection('post').deleteOne({_id : new ObjectId(req.body._id)})
res.status(200).json({message : "success delete"})
}
}
선생님 안녕하세요
강의에 나온대로 출력을해보면, req.body가 콘솔에 빈칸으로 출력이됩니다.
(undefined 아님)
질문1 : 코드는 잘못된부분이 없는거같은데.. 무슨문제일까요?
그래서, ListItem.js 파일에서
body: JSON.stringify({ _id: data._id })
바디부분을 위와같이 바꾸고,
delete.js파일에서
const { _id } = req.body; 변수로 지정해주고
console.log(new ObjectId(_id))
이렇게 출력하면, 출력값 : new ObjectId("6444d222d4a7c071370ee793")
console.log(_id)
이렇게 출력하면, 출력값 : undefined
인데,
질문2 : 위에처럼 그냥 아이디만 (6444d222d4a7c071370ee790) 출력할 수는 없나요?