1 minute read

최초 작성 : 2025-09-13

최종 업데이트 : 2025-09-13


세팅

npm install mongodb

 먼저 위와 같이 mongodb 라이브러리를 설치해야 한다.

const { MongoClient } = require('mongodb');

let db;
const url = 'DB 접속 URL';

new MongoClient(url).connect()
    .then((client)=>{
    console.log('DB 연결성공');
    db = client.db('forum');
    
}).catch((err)=>{
    console.log(err);
})

 그 다음 server.js 파일 상단에 위의 코드를 추가한다. app.get(), app.listen()과 같은 부분은 then으로 호출하는 콜백 함수 안에 넣어주는 것이 좋다. (DB가 정상적으로 연결되었을 때 서버를 실행하기 위해서)


데이터 접근 단계

 MongoDB에 접속해서 데이터를 가져오는 단계는 다음과 같다.

① MongoClient 생성

 MongoClient(url)는 MongoDB 서버에 연결하기 위한 클라이언트 객체를 생성한다. url 안에는 클러스터에 접속하기 위한 id와 password가 담겨 있다.

mongodb+srv://<db_id>:<db_password>@cluster0.jea.mongodb.net/?retryWrites=true&w=majority

 url은 위와 같이 생겼다. 이 값은 MongoDB에서 클러스터의 옆에 있는 Connect 버튼을 클릭하면 확인할 수 있다.

② 서버 연결

 여기에 connect()를 하면 서버와 실제로 연결이 된다.

③ 데이터베이스 선택

 db('<데이터베이스 이름>')는 데이터베이스를 선택한다.

④ 컬렉션 선택

 collection('<컬렉션 이름>')함수는 컬렉션을 선택한다.

⑤ 쿼리 실행

find() 함수는 쿼리 조건에 따라 문서를 검색하고 커서를 반환한다. toArray()함수는 커서를 배열로 변환한다.

new MongoClient(url).connect()
    .then((client)=>{
    const db = client.db('<데이터베이스 이름>');
    let data = db.collection('<컬렉션 이름>').find().toArray();
})

 따라서, 위와 같은 코드를 짜면 data에는 컬렉션에 있는 모든 document의 자료가 저장된다. 컬렉션이 Array, 각 document는 Object 자료형이므로 자료를 꺼낼 때는 data[0], data[0].title 등으로 꺼내서 사용하면 된다.


EJS 사용법

 데이터베이스에서 가져온 데이터를 html 파일 안에 넣어서 보내주고 싶을 때 (SSR 방식), 템플릿 엔진을 사용할 수 있다. 여러 종류가 있지만 가장 많이 쓰이고 쉬운 것은 EJS이다.

 먼저 npm으로 EJS를 설치해줘야 한다.

npm install ejs

 그 다음으로는, server.js 파일 상단에 ejs를 쓰기 위한 문법을 작성해줘야 한다.

app.set('view engine', 'ejs');
app.set('views', path.join(__dirname, 'views'));

 app.set('view engine', 'ejs')는 Express에 템플릿 엔진을 지정해주는 코드이고, app.set('views', path.join(__dirname, 'views'))는 Express에 view의 위치를 알려 주는 코드이다. 이를 통해 .ejs 파일을 찾는 걸 간편하게 만든다.

 폴더 구조에서 .ejs 파일은 view라는 이름의 폴더 안에 저장한다.

Updated: