ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Nodejs] Express MongoDB 연결
    Nodejs 2023. 8. 11. 16:49

     

    오늘은 Express와 MongoDB를 연결해보려 합니다.

     

    우선 Express에서 MongoDB를 사용하기 위해 모듈을 설치합니다

    npm i mongoose

     

    모듈이 설치 되었으면 db.js파일과 .env 파일을 만들겠습니다. db.js에는 Express에서 MongoDB연결하는 코드들을 작성할 예정이고 .env에는 MongoDB URL을 보안과 같은 여러 이유로 작성하려합니다. 

     

    .env파일에 MongoDB URL을 적어줍니다. 

    //.env
    DB_URL ="mongodb://127.0.0.1:27017/study-matching-service" 
    // MongoDB 주소 작성

    그리고 .env파일의 값들이 프로젝트 전체에서 사용 가능한 환경 변수로 설정해 주기위해 dotenv패키지를 설치하여 추가해주겠습니다.

    npm i dotenv

    그리고 기존에 작성해두었던 server.js로 돌아와 불러와주는데 모든 파일에서 사용가능하게 하기 위해 최상단에 import를 해주겠습니다.

    //server.js
    import "dotenv/config";  //최상단에 추가하기
    import express from "express";
    import cors from "cors";
    
    const app = express();
    const PORT = 8080;
    
    app.use(express.json());
    app.use(cors());
    
    const handleServer = () => {
      console.log(`Server listening on port http://localhost:${PORT}`);
    };
    
    app.listen(PORT, handleServer);

     

    설정이 완료 되었으면 db.js로 와서 Express와 MongoDB를 연결해보겠습니다.

    import mongoose from "mongoose";

    우선 설치한 모듈을 import 해옵니다

    MongoDB와 연결을 설정해주는 함수인 mongoose.connect()와 .env파일에 만들어 두었던 URL을 가져와 연결해보겠습니다. .env파일에 만들어 놓은 환경변수를 사용하려면 process.env.변수명을 써주면 사용이 가능합니다.

    //db.js
    import mongoose from "mongoose";
    
    mongoose.connect(process.env.DB_URL);

    그리고 MongoDB와의 연결을 관리하는 객체를 가져오겠습니다.

    const db = mongoose.connection; //MongoDB와 연결을 관리해주는 객체

    마지막으로 MongoDB와 연결에 오류가 발생했을 때와 연결이 열렸을때 실행되는 코드를 작성해 주도록 하겠습니다.

    const db = mongoose.connection;
    
    db.on("error", (error) => console.log("MongoDB Error")); 
    //MongoDB 연결에 오류 발생시
    db.once("open", () => console.log("Connected MongoDB")): 
    //MongoDB 연결에 성공했을 시

    최종 코드입니다.

    //db.js
    import mongoose from "mongoose";
    
    mongoose.connect(process.env.DB_URL);
    
    const db = mongoose.connection;
    
    db.on("error", (error) => console.log("MongoDB Error"));
    db.once("open", () => console.log("Connected MongoDB"));

    작성한 db.js를 server.js에 불러와주면 완성입니다.

    //server.js
    import "dotenv/config";
    import express from "express";
    import cors from "cors";
    import "./db.js";   //db.js 불러오기
    
    const app = express();
    const PORT = 8080;
    
    app.use(express.json());
    app.use(cors());
    
    const handleServer = () => {
      console.log(`Server listening on port http://localhost:${PORT}`);
    };
    
    app.listen(PORT, handleServer);

    확인해보기 위해 터미널창을 열고 MongoDB 서버를 시작해주는 mongod를 입력해줍니다.

    mongod

    터미널을 하나 더 열고 express를 실행시켜 줍니다.

    npm start

     Conncted MongoDB가 뜨면서 성공적으로 연결이 되었습니다.

     

Designed by Tistory.