일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- backend
- heroku
- CSS
- CLONE
- TypeScript
- Flutter
- 자바스크립트
- HTML
- API
- clonecoding
- NextJs
- nodejs
- graphQL
- javscript
- node.js
- Mongoose
- MongoDB
- 리액트
- express
- react
- form
- frontend
- JavaScript
- Session
- pug
- Component
- GRID
- ECMAScript
- ES6
- DART
- Today
- Total
Enjoy Programming
MongoDB 2 본문
이번엔 데이터 베이스 관련 코드를 짜고 유저에게 영상을 보고 검색, 수정 삭제할 수 있게 해보자.
자 mongoose가 설치되었고 dotenv를 설치하자.
dotenv란 node.js로 개발을 하면 port, DB관련 정보등 전역으로 필요한 여러 정보들이 존재한다.
node.js에서는 dotenv패키지를 통해 환경변수 파일을 외부에 만들고 관리할 수 있다. 특히 , 깃허브등에 오픈소스로 프로젝트를 공개할때
DB계정 정보를 소스코드내에 하드코딩 하지 않고, 외부환경변수 파일에 작성하고 gitignore를 통해 제외하면
노출되지 않고 안전하다.
참고 - 환경변수란 OS입장에서 해당 프로세스를 실행시키기 위하여 참조하는 변수
- 컴퓨터로 하는 모든 작업들은 OS를 통해 실행되는 자식 프로세스인데 이프로세스들을 실행시킬 때 OS입장에서 참조하는 변수
dotenv는 환경변수를 .env파일에 저장하고 process.env로 로드하는 의존성 모듈이다.
dotenv를 사용하는 이유는 개발하는 과정에서 서버주소, 고유 API KEY값 등 필요한 정보를 저장하는데
이러한 정보는 민감한 정보임과 동시에 보안이 이루어져야 하는 정보이다. 만약 이러한 정보들이 오픈소스에 공개 될 경우
해킹 또는 다른 여러 면에서 위험 할 수 있다.
자 dotenv를 설치하자
npm install dotenv
설치가 완료되었으면 기존에 작성한 가짜 데이터 베이스를 지우자~
그리고 설치했던 mongoose를 임포트 한다
그리고 mongoose.connect()를 통해 mongoose 기본 커넥션을 실행해준다
여기서 요청하는건 string으로 된 database이다. 어디에 databaserㅏ 저장되어있는지 알려주는 것.
그리고 콘솔창에서 mongo를 실행시키면 mongodb의 url port가 나온다.
우리가 사용할 database port는 27017이다. 파이썬에서 플라스크를 사용할 때도 27017이었다.
이제 mogoose.connect()안에 포트를 적고 생성할 데이터베이스 이름을 써주자
그리고 db라는 변수에 mongodb연결을 담아주자
그리고 연결이 성공했는지 여부와 에러가 생겼다면 에러를 표시하도록 해주자
두개의 함수를 만들어주고 open이벤트가 발생하면 한번만 handleOpen함수를 실행해서 연결되었다는 문구를 띄워준다.
만약 error가 발생했다면 handleError를 통해 에러코드를 출력한다.
그리고 기존에 가짜 데이터 베이스를 videoController에 임포트 했었는데 이제 삭제하고
init파일에 임포트해주자
그리고 다시 npm start해주면~
이렇게 연결되었다고 확인이 된다~
명심할건 mongod를 통해 실행을 해주자~ mongod는 alias설정을 해서 단축 명령어를 만들어준 이름이다.
'JavaScript > Node.JS' 카테고리의 다른 글
MongoDB - configuring Dot Env (0) | 2021.04.30 |
---|---|
MongoDB - configuring Dot Env (0) | 2021.04.30 |
Express - MongoDb (0) | 2021.04.25 |
Express - Controllers update (0) | 2021.04.25 |
Express - Login && User Profile (0) | 2021.04.25 |