728x90
해당 내용은 코딩애플의 Next.js 강의 내용을 기반으로 하고 있다는 것을 알려드립니다.
1. util 폴더 만들고 파일명.js 생성
// util/database.js
import { MongoClient } from 'mongodb'
const url = 'DB접속URL'
const options = { useNewUrlParser: true }
let connectDB
// 개발 중이라면
if (process.env.NODE_ENV === 'development') {
// 변수 global._mongo 없으면
if (!global._mongo) {
//전역변수 저장소에 보관
global._mongo = new MongoClient(url, options).connect()
}
connectDB = global._mongo
// 개발 중이 아니라면
} else {
connectDB = new MongoClient(url, options).connect()
}
export { connectDB }
- DB접속 URL은 MongoDB 홈페이지 로그인 -> OverView -> CONNECT 에서 확인하실 수 있습니다.
2. DB 입출력이 필요한 파일에서 connectDB 함수 가져다쓰기
import { connectDB } from "/util/database.js"
export default async function Home() {
let client = await connectDB;
const db = client.db('Database 이름');
let result = await db.collection('Collection 이름').find().toArray();
return (
<div></div>
)
}
- 위 코드를 아래와 같이 축약 가능합니다.
export default async function Home() {
let db = (await connectDB).db('forum');
let result = await db.collection('post').find().toArray();
* DB 입출력 코드는 server component 안에서만 사용해야 합니다.
Client component에서 사용하면 DB Access Url 같이 중요한 내용이 사용자에게 노출되기 때문에
보안 상의 위험이 있을 수 있습니다.
728x90
'Develop > NEXT' 카테고리의 다른 글
[Next.js] 게시판 만들기(5) 게시판 게시글 삭제 기능 구현하기 feat.mongoDB (0) | 2023.08.14 |
---|---|
[Next.js] 게시판 만들기(4) 게시글 수정기능 만들기 feat.mongoDB (0) | 2023.08.14 |
[Next.js] 게시판 만들기(3) 게시글 상세페이지 기능 구현하기 feat.mongoDB (0) | 2023.08.14 |
[Next.js] 게시판 만들기(2) 글 목록 조회 기능 구현 feat.mongoDB (0) | 2023.08.13 |
[Next.js] 게시판 만들기(1) mongoDB(몽고디비) 데이터 입력(Insert)하기 (0) | 2023.08.11 |