-
nodejs 에서 mongodb 연결하기 (with docker)서버 2020. 3. 28. 23:48
본격적으로 들어가기전에 나는 도커를 아래와 같이 구성했다
version: "3.7" # version 정보를 작성합니다. services: # service 목록을 정의합니다. node: # service의 이름입니다. image: rhxorhkd/testnode:1.0 # 해당 service에서 사용할 image입니다. links: # 컨테이너 간의 연걸 - mongodb # mongodb와 연결 restart: always # container를 실행할 때 항상 이미 수행중이라면 재시작을 수행합니다. container_name: "node" # container의 name을 정의합니다. ports: # service port를 정의합니다. - "3000:3000" # local:container depends_on: # 실행순서를 설정한다. (mongodb시작 후 실행) - mongodb mongodb: # service의 이름입니다. image: mongo # 해당 service에서 사용할 image입니다. restart: always # container를 실행할 때 항상 이미 수행중이라면 재시작을 수행합니다. #environment: # 환경변수를 정의합니다. # MONGO_INITDB_ROOT_USERNAME: root # MONGO_INITDB_ROOT_PASSWORD: P@ssw0rd volumes: # container -> local로 mount할 수 있습니다. - type: bind source: /Users/kotaekwang/Documents/kuzal/db # local 경로 target: /data/db # container 내부에서의 경로 container_name: "mongo" # container의 name을 정의합니다. ports: # service port를 정의합니다. - "27017:27017" # local:container
mongoose 모듈 다운
npm install --save mongoose
nodejs 프로젝트 내에 mongoose 세팅 코드 작성
// ./conf/db.js const mongoose = require('mongoose'); mongoose.connect('mongodb://mongo:27017/kuzal', {useUnifiedTopology : true, useNewUrlParser: true}); const db = mongoose.connection; db.on("error", () => { console.log("> error occurred from the database"); }); db.once("open", () => { console.log("> successfully opened the database"); }); module.exports = mongoose;
mongoose.connect 뒤 url에서 mongo는 컨테이너 이름
테스트 스키마 작성
// ./models/test const mongoose = require('../conf/db'); const testSchema = mongoose.Schema({ name : String }); module.exports = mongoose.model('test', testSchema);
라우트 작성 (나는 /test 로 요청할 경우 test 컬렉션 안에 데이터들을 전송하기로 하였다)
// ./router/index.js router.get('/test', function(req, res) { Test.find(function(err, tests) { if(err) { console.log("failed to get"); } res.json(tests); }) });
그리고 전 게시물에서 배운 docker-compose up -d 를 실행해준다.
url 창에 입력하면 원하는 결과값이 나오는 것을 알 수 있다.
'서버' 카테고리의 다른 글
docker-compose로 node, mongo 구성하기 (0) 2020.03.28 nodejs express-generator 사용하기 (0) 2020.03.26 docker 명령어 (0) 2020.03.26 Docker로 nodejs 설치하기 (0) 2020.03.26 docker 로 mongodb 설치하기 (0) 2020.03.22