-
[mongoose 설치]Database/MongoDB 2022. 1. 20. 16:55
- 몽고디비 사이트 접속
- CLUSTER 만들기 => 무료 클러스터 생성
- Mongo DB 유저 생성
- cluster 생성 후 username과 password생성
- Connect your application

- driver와 version 확인 후 아래 코드 복사

- Mongoose 다운로드
- npm install mongoose --save ( 패키지 설치 )
- Mongoose
- NoSQL Database
- 몽고DB를 편하게 쓸 수 있는 Object Modeling Tool
- Node.js와 Mongo DB를 연결해주는 ODM (Object Document Mapping)
- 객체와 문서를 1대1 매칭하는 역할
- 관련 문서 참고 => https://mongoosejs.com/docs/api/query.html
- mongoose 실행(연결)
-
// mongoose connect // index.js const mongoose = require("mongoose"); mongoose.connect(config.mongoURI, { useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex: true, useFindAndModify: false, }) .then(() => console.log("MongoDB Connected...")); // connect success .catch((err) => console.log(err)); // error // config.mongoURI // cluster connect시 복사했던 username, password부분 삽입 // 몽구스 버전이 6.0이상이라면 // MongoParseError: options usecreateindex, usefindandmodify are not supported 에러 발생 // 몽구스 버전이 6.0이상이라면 몽구스는 항상 // useNewUrlParser:true, useUnifiedTopology: true, useCreateIndex: true, useFindAndModify: false로 // 기억하고 실행하기 때문에 더 이상 지원하지 않는다 ==> 생략 가능 
-
config.mongoURI 설정하기
현재 이 위치에는 cluster 만들면서 username, password생성된 connect 코드이다.
개인정보이므로 보호할 필요가 있다.!
- 환경에 따른 분기처리
- local : development
- deploy(배포 후)환경 : production (ex, heroku site)
- heroku
- 무료로 호스팅할 수 있도록 해주는 서비스
- 해당 도메인으로 일정시간 동안 요청이 없을 경우 수면 상태로 전환(sleep)
-
// config > key.js if (process.env.NODE_ENV === "production") { // process.env.NODE_ENV : 환경변수 module.exports = require("./prod"); } else { module.exports = require("./dev"); } // config > dev.js module.exports = { mongoURI: "mongodb+srv://username:password.....", }; // config > prod.js module.exports = { mongoURI: process.env.MONGO_URI } -
// index.js cost config = require("./config/key"); mongoose.connect(config.mongoURI) .then(() => console.log("process.env.NODE_ENV", process.env.NODE_ENV)) // undefined .then(() => console.log("MongoDB Connected...")) .catch((err) => console.log(err)); // index.js 실행 시 process.env.NODE_ENV가 undefined 결과가 나오기 때문에 // dev.js실행한다. 
- .gitignore
- 환경변수에 따른 분기처리 후 dev.js에 있는 개인정보를 git에 올리지 않도록 설정이 필요
- 루트 디렉토리에 .gitignore 파일 생성 후
- dev.js 코드 추가
'Database > MongoDB' 카테고리의 다른 글
[save, insertOne] - 데이터 저장 (0) 2022.01.21 [Schema, model] (0) 2022.01.20
