몽고디비는 비관계형 데이터베이스로 사용법이 단순하여 노드제이에스 개발자들 사이에 인기가 많습니다. 오늘은 노드제이에스 서버와 몽고디비를 연결하는 방법을 보겠습니다.
몽고디비에서 커넥션 스트링 가져오기
먼저, 몽고디비(https://cloud.mongodb.com/ )에서 해당 데이터베이스를 열고 'Connect'를 누릅니다.
열린 팝업에서 'MongoDB for VS Code'을 선택합니다.
3번에 커넥션 스트링 복사
애플리케이션에 연결하기
애플리케이션으로 이동하여 몽구스를 설치합니다.
npm i mongoose
서버파일로 이동하여 (주로 server.js 또는 app.js를 많이 사용) 아래와 같이 몽구스를 가져옵니다. 그리고 .connect()를 사용하여 연결하는데요. connect() 안에 매개변수로 아틀라스에서 복사한 connection string을 넣습니다.
// server.js
const mongoose = require('mongoose')
mongoose.connect('insertConnectionString').then(() => console.log('connected')).catch(() => console.log('failed'))
커넥션 스트링은 아래와 같은 형태를 가집니다. 꺽쇠 안에 표시된 부분은 실제 설정된 값으로 대체해 주어야 합니다.
// connection string original
mongodb+srv://test:<password>@test.fwefef.mongodb.net/
예를 들어, 비밀번호를 1234로 설정한 경우 아래와 같이 해당 비밀변호를 넣어 줍니다.
// connection string with password
mongodb+srv://test:1234@test.fwefef.mongodb.net/
해당 데이터베이스 하위에 컬렉션 (collection)을 설정도 가능한데요. 컬렉션은 데이터의 집합으로 관계형에서 테이블에 해당하는 다수의 다큐먼트를 가집니다.
// connection string with password and collection name
mongodb+srv://test:1234@test.fwefef.mongodb.net/<collectionName>
파일정리하기 (선택사항)
한 파일에 코드가 집중되는 것을 방지하여 가독성을 높이기 위해 데이터베이스 연결파일을 따로 분리하는 경우가 많은데요. 먼저 config라는 폴더를 생성하고 그 안에 몽고디비 구성파일을 생성합니다.
/* config/mongo-db.js */
const mongoose = require("mongoose");
exports.mongoDB = () => {
mongoose
.connect("mongodb+srv://test:1234@test.fwefef.mongodb.net/")
.then(() => console.log("connected"))
.catch(() => console.log("mongodb connection failed"));
}
그리고 아래와 같이 서버파일에서 생성된 구성 파일을 가져와서 연결합니다.
/* server.js */
const express = require("express");
const app = express();
const { mongoDB } = require("./config/mongo-db");
// mongoDB
mongoDB();
※ 연결구문은 다양하므로 아래와 같이 연결도 가능합니다.
/* config/mongo-db.js */
const mongoose = require('mongoose')
mongoose.connect(
process.env.MONG).then(() => console.log('connected'))
.catch(() => console.log('failed'))
/* server.js */
require('./config/db')
환경변수사용하기 (선택사항)
환경변수 사용하기
환경변수는 고정된 값이 아닌 변수를 사용하게 해 주어 개발환경과 프로덕션환경 사이에서 필요한 설정 값을 변경할 필요 없이 한 번의 설정으로 모두 적용되게 하며, 민감한 정보의 노출을 숨
jin-co.tistory.com
이상으로 몽고디비와 노드제이에스 애플리케이션을 연결하는 방법을 살펴보았습니다.
'백엔드 > 노드제이에스' 카테고리의 다른 글
파일업로드 (0) | 2023.05.22 |
---|---|
노드제이에스 서버 만들기 (8) | 2023.02.20 |
노드제이에스? (8) | 2023.02.12 |
노드제이에스 서버 만들기 (익스프레스) (0) | 2023.02.12 |
노드제이에스 - 앵귤러 서버 API 배포하기 (Render) (0) | 2023.01.22 |