안녕하세요 선생님 응용 중 막히는 부분 있어서 질문드립니다.
<span onClick={(e)=>{
fetch(`/api/abc/${result[i]._id.toString()}`)
이런식으로 URL parameter 코드를 짜서 휴지통 span을 누르면 일단
console.log(요청.query)를 하면 { dynamic: '64f83d3eda5d3d3201a2e8c1' } 이렇게 값이 잘 출력이 됩니다
근데 그래서 삭제기능을 넣기 위해
import {connectDB} from "@/util/database.js"
import { ObjectId } from "mongodb";
export default async function handler(요청,응답){
const client = await connectDB;
if(요청.method == 'GET'){
// console.log(요청.query)
// return 응답.status(200).json()
const db = client.db("forum")
let result = await db.collection('post').deleteOne({_id : new ObjectId(요청.query)})
return 응답.status(200).json('삭제완료')
}
}
이렇게 코딩을 하면
- error Error [BSONError]: Argument passed in does not match the accepted types
at new ObjectId (C:\Users\DAEHUN BAEK\Desktop\project next\forum\node_modules\bson\lib\bson.cjs:1956:19)
at handler (webpack-internal:///(api)/./pages/api/abc/[dynamic].js:17:18)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
digest: undefined
이런 오류가 발생하면서 삭제가 안됩니다.
오류도 검색해보았지만 앞에 오류 내용만 같고 디테일이 다르다보니 해결책을 찾기 쉽지 않네요 ㅜㅜ
가르침 부탁드립니다.