Next.js

Next.js 프로젝트와 MongoDB 연동하기 (2)

알럽유 2024. 3. 1. 19:20
728x90

Next.js 프로젝트와 MongoDB 연동하기


1. MongoDB에서 데이터 생성하기

먼저, MongoDB에서 데이터를 생성해봅시다. MongoDB에 로그인 후 'collections' 버튼을 클릭하면 데이터베이스의 데이터를 볼 수 있습니다. 현재는 아무 데이터도 없으니, 'Add my own data' 버튼을 눌러 데이터를 추가해봅시다.

 


'forum'이라는 이름의 데이터베이스와 'post'라는 이름의 컬렉션을 만들어봅시다. 데이터베이스를 먼저 만든 후, 그 안에 컬렉션을 만들고, 그 안에 다시 도큐먼트를 추가할 수 있습니다.



도큐먼트에는 원하는 데이터를 자유롭게 추가할 수 있습니다. 예를 들어, 게시글의 제목과 내용을 저장하고 싶다면, 다음과 같이 도큐먼트를 생성할 수 있습니다:

 

 

//json
{
  "title": "안녕",
  "content": "반가워"
}

 

 

 


2. Next.js에서 MongoDB 연결하기

이제 Next.js에서 MongoDB를 연결해봅시다. 먼저, MongoDB 라이브러리를 설치합시다.

 

//bash
npm install mongodb


다음으로, MongoDB를 연결하는 코드를 작성합시다. 이 코드는 데이터베이스에 접속하고, 데이터를 가져오는 등의 작업을 할 수 있게 해줍니다. 이 코드를 재사용하기 위해, 함수로 만들어서 필요할 때마다 호출하면 됩니다.

다음은 MongoDB를 연결하는 코드 예시입니다:

import { MongoClient } from "mongodb";

export default async function Home() {
  const client = await MongoClient.connect(
    "mongodb+srv://admin:qwer1234@dongwok.cxwea9z.mongodb.net/?retryWrites=true&w=majority&appName=dongwok",
    { useNewUrlParser: true }
  );
  const db = client.db("forum");

  db.collection("post").find();
  return <div>hello</div>;
}


위 코드에서는 YOUR_MONGODB_URL에 MongoDB 데이터베이스의 URL을 입력해야 합니다.

 


3. Next.js에서 MongoDB 데이터 사용하기

이제 MongoDB와 연결이 완료되었으니, 실제로 데이터를 가져와서 사용해봅시다.

아래 코드는 connectDB 함수를 import하여 MongoDB에서 데이터를 가져와 출력하는 예시입니다:

import { MongoClient } from "mongodb";
const url = "DB접속URL~~";
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 MongoClient(url, options).connect();
}
export { connectDB };


여기서 await connectDB는 MongoDB에 연결하고, db.collection('post').find().toArray()는 'post' 컬렉션의 모든 도큐먼트를 배열로 변환하여 가져옵니다. 이렇게 가져온 데이터를 원하는 방식으로 화면에 출력하면 됩니다.