728x90
await db.collection("post").updateOne({수정할게시물정보 id같은거}, { $set: {수정할내용} });
근데 id에 대한 정보가 없다
그래서 id를 이런식으로 보내줘야한다.
import { connectDB } from "@/util/database";
import { ObjectId } from "mongodb";
export default async function Edit(props) {
//제목과 내용에 담길 DB내용을 가져올거다
const client = await connectDB;
const db = client.db("market");
let result = await db
.collection("post")
.findOne({ _id: new ObjectId(props.params.id) });
return (
<div>
<div className="p-20">
<h4>수정페이지</h4>
<form action="/api/post/edit" method="POST">
<input name="title" defaultValue={result.title} />
<input name="content" defaultValue={result.content} />
<input
name="_id"
defaultValue={result._id}
style={{ display: "none" }}
/>
<button type="submit">수정</button>
</form>
</div>
</div>
);
}
그럼 console.log(요청.body)를 찍으면 id, title, content가 다 들어있을거다.
이걸로 서버에서 작업하면 된다.
import { connectDB } from "@/util/database";
import { ObjectId } from "mongodb";
export default async function handler(요청, 응답) {
if (요청.method == "POST") {
// console.log(요청.body);
let 바꿀거 = { title: 요청.body.title, content: 요청.body.content };
const client = await connectDB;
const db = client.db("market");
//id는 모르니까 유저한테 보내라고 해야한다
let result = await db
.collection("post")
.updateOne({ _id: new ObjectId(요청.body._id) }, { $set: 바꿀거 });
응답.redirect(302, "/list");
}
}
728x90
'교육후 개인공부 > React' 카테고리의 다른 글
[Next.js] dynamic route와 id맞추기(상세페이지설정) (0) | 2024.02.20 |
---|---|
mongoDb 연결하기 (0) | 2024.02.20 |
[Next.js] Oauth google 구현하기 (0) | 2023.12.09 |
[Next.js] mongodb에 데이터 삽입하기 (1) | 2023.12.07 |
[React] todolist 구현완성본 (1) | 2023.12.06 |