ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 5. express server와 몽고DB 연결하기
    MERN Stack ChatApp 2024. 8. 1. 11:01

    https://www.youtube.com/watch?v=mnHjdgdCK6c&list=PLKhlp2qtUcSZsGkxAdgnPcHioRr-4guZf&index=8

     

     

    몽고디비 사이트가서 가입하고, 프로젝트만들고 이런거는 굳이 적지 않겠다.

    프로젝트를 만들고 나면 클러스터를 만들어야 한다.

     

    클러스터 만들때 유저랑 비밀번호 생성하던가?

    잘 기억이 안나는데 아무튼 혹시라도 이때 유저랑 비밀번호를 생성한다면 어따가 잘 저장해둔다.

    그리고 네트워크 액세스에 들어가 내가 접속할 수 있게끔 아이피를 추가해준다.

    아마 기본으로 현재 아이피가 추가되어 있을텐데, 혹시 아니라면 추가해준다.

    나중에 서버를 ec2등에 배포하거나 한다면 배포된 곳의 ip도 여기에 등록을 해줘야 디비에 접근할 수 있다.

     

    다음으로 데이터베이스를 눌러서 들어간 다음 connect를 해준다.

     

    우리의 어플리케이션이랑 연결해줄거기 때문에  Drivers선택해주고

    Nodejs랑 연결해주는거니깐 NodeJS 선택하고, 

    아래 동그라미 쳐놓은 걸 복사한다. 

    이 DB에 접근할 수 있는 URI다.

     

     

    저기서  <password> 부분에 앞의 어딘가에서 만든 유저 비밀번호를 넣어주면 된다.

    .env MONGO_URI=asdfasdfasdf 이런식으로 저장해줬다.

     

    그리고 backend/config/db.js 를 만들어준다.

    // backend/config/db.js
    
    const mongoose = require("mongoose");
    const color = require("colors");
    
    const connectDB = async () => {
      try {
        const conn = await mongoose.connect(process.env.MONGO_URI, {});
        console.log(`mongoDB Connected : ${conn.connection.host}`.yellow.underline);
      } catch (error) {
        console.log(`Error : ${error}`.red.bold);
        process.exit();
      }
    };
    
    module.exports = connectDB;

     

    이전에 몽구스가 설치되어 있어야 한다. 없다면 설치해주자. npm i mongoose

    몽구스는 몽고디비와 연결을 쉽게해주고, 뭐 여러가지 도움을 주는 라이브러리다.

     

    (colors는 콘솔에 찍히는 색깔을 바꿔주는 라이브러리다. 처음봤는데 신기했다. 이건 필수는 아니고 걍 없어도된다.

    하고싶다면 npm i -d colors

    )

     

    이제 server.js로 가서

    const app = express();
    const PORT = process.env.PORT || 4000;
    connectDB();	// 추가

    이렇게 추가해주면 된다.

     

    그리고 서버를 켜서 잘 연결되나 확인해보자. 잘 연결되었다면 위에서 찍은 mongoDB Connected : 어쩌고 가 콘솔에 잘 찍힐것이다.

     

    github : https://github.com/Wunhyeon/ChatApp-MERNStack/tree/5.connectMongoDB

    'MERN Stack ChatApp' 카테고리의 다른 글

    8.Login  (0) 2024.08.05
    7. Front 회원가입 페이지 전면 수정 및 서버통신  (0) 2024.08.04
    4. 로그인, 회원가입 폼 만들기  (0) 2024.07.31
    3. 스키마생성  (0) 2024.07.31
    2. 프론트와 연동  (0) 2024.07.31

    댓글

Designed by Tistory.