[Nodejs] Express MongoDB 연결
오늘은 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가 뜨면서 성공적으로 연결이 되었습니다.