-
[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가 뜨면서 성공적으로 연결이 되었습니다.
'Nodejs' 카테고리의 다른 글
[Nodejs] Error: listen EADDINUSE : address already in use :::8080 (0) 2023.11.12 [Nodejs] Express 시작하기 (2) 2023.08.10 [Nodejs] Window Nodejs 설치하기 (0) 2023.08.10