Node.js 시작하기 (5) - MongoDB와 서버 연결하려면

funfungun·2024년 9월 9일
0
post-thumbnail

지난 시간에는 MongoDB 에서 호스팅받고 셋팅하는 방법을 알아보았습니다. 이번 시간에는 MongoDB와 서버를 연결하는 방법을 알아보겠습니다.


  1. 게시판을 만들어볼건데, 게시물 데이터는 유저가 삽입했으면 좋겠다는 생각이 듭니다. 하지만 유저가 DB 에 직접 접근하여 데이터를 삽입하면 무슨 데이터를 넣을지 모르기 때문에 위험합니다. 그래서 중간에 서버가 검증을 해주어야 하는데, 우선 라이브러리 하나를 다운받아 봅시다.
    npm install mongodb@5

  1. 다음으로 MongoDB 에 접속하는 코드를 server.js 에 추가해줍시다. 여기서는 url 에 실제 DB 접속 URL 을 넣어주어야 합니다.

    //server.js
    
    const express = require("express");
    const app = express();
    const { MongoClient } = require("mongodb");
    
    let db;
    const url = "mongodb사이트에 있던 님들의 DB 접속 URL";
    new MongoClient(url)
      .connect()
      .then((client) => {
        console.log("DB연결성공");
        db = client.db("forum");
      })
      .catch((err) => {
        console.log(err);
      });
    
    app.use(express.static(__dirname + "/public"));
    
    app.listen(8080, () => {
      console.log("http://localhost:8080 에서 서버 실행중");
    });
    
    app.get("/", (req, res) => {
      res.sendFile(__dirname + "/index.html");
    });
    
    app.get("/news", (req, res) => {
      res.send("Hello News!");
    });

  1. URL 은 이전에 봤던 Clusters 들어가면 Connect 가 있는데, 이걸 눌러줍니다.

  1. Connection string 에서 복사하기 버튼을 눌러서 server.js 의 url 변수에 저장합시다. console 에서 DB연결성공 이라고 출력된다면 정상인 것입니다.

  1. 추가로, dotenv 설정에 대해 알아봅시다. DB에 접속할 수 있는 엔드포인트 같은 경우는 노출 시 위험할 수 있기 때문에 .env 라는 파일에 별도로 분리해두는 것이 좋습니다. 라이브러리를 다운 받아 줍시다.
    npm install dotenv

  1. .env 라는 파일을 만들고, DB 접속 URL 을 저장해줍니다.
    MONGO_URL="mongodb사이트에 있던 님들의 DB 접속 URL"

  1. 이제 server.js 에서 dotenv 관련 설정을 해주고, 서버를 실행하여 다시 DB연결성공 이라고 console 창에 출력되는 지 확인하면 됩니다.

    //server.js
    
    require("dotenv").config();
    
    const express = require("express");
    const app = express();
    const { MongoClient } = require("mongodb");
    
    let db;
    const url = process.env.MONGO_URL;
    new MongoClient(url)
      .connect()
      .then((client) => {
        console.log("DB연결성공");
        db = client.db("forum");
      })
      .catch((err) => {
        console.log(err);
      });
    
    app.use(express.static(__dirname + "/public"));
    
    app.listen(8080, () => {
      console.log("http://localhost:8080 에서 서버 실행중");
    });
    
    app.get("/", (req, res) => {
      res.sendFile(__dirname + "/index.html");
    });
    
    app.get("/news", (req, res) => {
      res.send("Hello News!");
    });

지금까지 MongoDB와 서버를 연결하는 방법을 알아보았습니다. 다음 시간에는 DB 데이터를 출력해서 보여주는 법을 알아보겠습니다.

profile
Commercial Art

0개의 댓글