본문 바로가기

교육후 개인공부/React18

[Next.js] dynamic route와 id맞추기(상세페이지설정) 상세페이지에서 dynamic route에 id맞추는 방법이다. 일단 mongoDB에서 게시물 1개만 가져오려면 findOne을 사용하면 된다. const result = await db.collection("post").findOne({ title: "제목3" }); const result = await db .collection("post") .findOne({ _id: new ObjectId('65699478e619dc02d6af6819') }); 이렇게하면 저 id에 맞는 게시물을 찾아준다. 하지만 id값을 우린 항상 알수있는게 아니니까 props를 이용해보자! export default async function Detail(props) { const client = await connectDB;.. 2024. 2. 20.
mongoDb 연결하기 //util폴더의 database.js파일 import { MongoClient } from "mongodb"; const url = "mongodb+srv://mongzii228:@cluster0.m8aww3r.mongodb.net/?retryWrites=true&w=majority"; const options = { useNewUrlParser: true }; let connectDB; if (process.env.NODE_ENV === "development") { if (!global._mongo) { global._mongo = new MongoClient(url, options).connect(); } connectDB = global._mongo; } else { connectDB = new.. 2024. 2. 20.
[Next.js] Oauth google 구현하기 pages/api/auth/[...nextauth].js import NextAuth from "next-auth"; import GoogleProvider from "next-auth/providers/google"; export const authOptions = { providers: [ GoogleProvider({ clientId: process.env.GOOGLE_CLIENT_ID, clientSecret: process.env.GOOGLE_CLIENT_SECRET, }), ], secret: "qwer1234", }; export default NextAuth(authOptions); 로그인버튼과 로그아웃버튼을 만들었다. LoginBtn.js "use client"; import { sign.. 2023. 12. 9.
[Next.js] 게시물수정하기 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 ObjectI.. 2023. 12. 7.