2022. 10. 14. 20:48ㆍ공부/Javascript
일반적인 데이터베이스는 SQL 쿼리를 이용해서 소통해야 하지만
Mongo DB는 Document Base로 JS로 소통할 수 있다.
심지어 Community Edition은 무료이다.
MongoDB: The Developer Data Platform | MongoDB | MongoDB
MongoDB: The Developer Data Platform | MongoDB
Get your ideas to market faster with a developer data platform built on the leading modern database. MongoDB makes working with data easy.
www.mongodb.com
Mongo DB 설치하기
Window에서 설치하려면 두가지 방법이 있다.
1. Chocolatey를 이용하는 방법
2. msi 파일 등을 이용해서 직접 설치하는 방법
나는 chocolatey를 사용했다가 패키지 하나가 설치가 안되는 에러가 발생해서 직접 설치를 진행했다.
MongoDB Community Download | MongoDB
MongoDB Community Download
Download the Community version of MongoDB's non-relational database server from MongoDB's download center.
www.mongodb.com
위의 링크에서 msi 파일을 받아 설치한 다음 환경변수를 설정해주어야 한다.
윈도우 검색창에서 env를 검색 후 [계정의 환경 변수 편집]으로 들어가면 다음의 창이 뜬다.
환경 변수 중에서 'path'를 더블클릭 하면 다음의 창이 뜬다.
여기서 new를 눌러 mongoDB가 설치된 폴더의 bin 폴더 경로를 추가한다.
그 다음은 mongo shell을 설치해주어야 한다.
MongoDB Shell Download | MongoDB
MongoDB Shell Download
The MongoDB Shell is a modern command-line experience, full with features to make it easier to work with your database. Free download. Try now!
www.mongodb.com
mongo shell zip을 다운받아 압축을 푼 뒤 환경변수의 path에 bin폴더 경로를 추가해준다.
다 설치 후 명령 프롬포트 창을 열어 다음의 명령어들을 쳤을 때 에러가 뜨지 않는다면 성공.
- mongod : MongoDB 시스템의 기본 데몬 프로세서( 서버같은 느낌 )
- mongosh : MongoDB에 대한 쉘 인터페이스 ( 클라이언트 느낌 )
즉, mongod 로 서버를 키고 mongosh로 db에 명령을 할 인터페이스를 키는 느낌.
JS에 DB 연결하기
프로젝트 폴더에 다음의 명령어로 mongoose를 설치한다.
$ npm install mongoose --save
mongoose란 JS를 mongoDB 쿼리로 변경해주는 패키지이다.
Mongoose ODM v6.6.5 (mongoosejs.com)
Mongoose ODM v6.6.5
Let's face it, writing MongoDB validation, casting and business logic boilerplate is a drag. That's why we wrote Mongoose. const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost:27017/test'); const Cat = mongoose.model('Cat', { name:
mongoosejs.com
server.js와 같은 폴더에서 db.js를 생성한다.
mongoose.connect() : 연결할 데이터베이스의 주소를 넣어준다. 도메인 주소 뒤에 반드시 db 명이 붙어야 한다.
주소는 cmd창에 mongodsh를 치면 나오는 주소를 사용한다.
(뒤에 넣어준 속성들은 차후 업데이트가 됐을 때 필요한 속성들로, 에러가 뜨지 않는다면 넣지 않아도 무방하다)
db가 연결되거나 에러가 발생하면 피드백이 있어야 하므로 on과 once 메소드를 이용해 이벤트를 감지한다.
작성한 db.js를 server.js 가장 위에 파일 자체로 import 한다.
가장 위에 파일 자체를 import 해도 개발서버를 실행해 보면 개발서버가 먼저 열리고 그 뒤에 db가 열리는데
이는 속도 차이 때문이다.
'공부 > Javascript' 카테고리의 다른 글
[Youtube 클론코딩] DB 데이터 불러오기와 비동기 (0) | 2022.10.27 |
---|---|
[Youtube 클론코딩] 비디오 스키마 만들기 (1) | 2022.10.14 |
[Youtube 클론코딩] POST 기능 연습하기 (0) | 2022.10.11 |
[Youtube 클론코딩] MVP.css (0) | 2022.10.09 |
[Youtube 클론코딩] Pug (1) | 2022.10.08 |