일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 솔리디티
- HTML
- 웹
- docker
- 파이썬
- 블록체인
- TypeScript
- 컴퓨터공학
- 타입스크립트
- k8s
- CSS
- BFS
- 백엔드
- 알고리즘
- 이슈
- 클라우드
- 프론트엔드
- VUE
- AWS
- JavaScript
- 리액트
- kubernetes
- 쿠버네티스
- es6
- 이더리움
- 가상화
- react
- 백준
- next.js
- 자바스크립트
- Today
- Total
즐겁게, 코드
Express.js & MongoDB 기반 REST api 구현하기 - 2편 본문
지난 글에서 익스프레스를 활용한 간단한 REST api 서버를 만들었다.
서버만 만들고 마치기는 2% 아쉬우니, 몽고디비(MongoDB)와 연계해 CRUD 동작을 구현해 보자.
이번 글에서는 몽고디비를 클라우드 서비스로 제공하는 MongoDB Atlas 사용법을 정리할 예정이다.
먼저 cloud.mongodb.com/ 으로 들어가 회원가입을 마치면 보이는 아래 화면에서 [New Project] 를 선택해주자.
프로젝트의 이름과 접근 권한을 설정해주면 아래 화면이 나타난다.
아직 우리가 만든건 껍데기에 불과하니 [Build a Cluster] 를 선택해 본격적인 데이터베이스를 만들어 보자.
사용량에 따라 플랜을 선택한 다음 서비스 제공자는 AWS로 설정한 다음, 하단 배너의 [Create Cluster] 버튼을 클릭하면 DB를 사용할 가상 환경이 구축된다. (이때 약 2~5분의 시간이 소요되니 합법적으로 쉬다 오자.)
클러스터가 생성되면 DB를 모니터링할 수 있는 화면이 보일 것이다.
이제 [COLLECTIONS] 를 선택해 실제 데이터베이스를 생성할텐데, [Add My Own Data] 를 눌러 데이터베이스의 이름과 하위 분류(컬렉션) 의 이름을 정해준다. 데이터베이스의 이름은 Node.js와의 연결을 위해서 필요하니 기억해 두자. (컬렉션 이름이 아니다!)
이제 데이터베이스가 완성된 모습이다.
앞으로 데이터베이스에 새로운 스키마를 추가하면 이곳에서 확인할 수 있으며, GUI를 통해 데이터를 관리할 수도 있다.
이제 완성된 데이터베이스를 Node.js 프로젝트와 연동할 차례다.
클러스터 대시보드로 돌아와 이번에는 [CONNECT] 를 선택해보자.
그럼 이런 설정 화면이 나타나는데, [Allow Access from Anywhere] - [Add IP Adress] 를 선택한 다음 사용자 정보를 입력한다.
처음 입력하는 사용자는 자동으로 관리자가 되며 유저네임과 비밀번호는 다음에도 써야 하니 꼭 기억한다.
세 가지 연결 방법 중 [Connect your application] 을 선택한 후 나타나는 URI를 복사해둔다.
이제 아틀라스 설정은 모두 끝났고, Node.js 프로젝트로 돌아와 npm i mongoose
를 입력해 mongoose 라이브러리를 설치한다.
공식 mongodb 라이브러리도 있지만 mongoose 쪽이 훨씬 사용하기 편하다. 쉬운 걸 쓰자!
몽고디비와 내 프로젝트를 연결하는 mongoose.connect()
에는 방금 복사한 url을 넣어야 하는데, <password> 부분은 처음 생성한 사용자 정보 비밀번호, <dbname> 은 [COLLECTIONS] 메뉴에서 생성한 데이터베이스 이름으로 덮어쓴다. (클러스터, 컬렉션 이름이 아닌 데이터베이스 이름이다!)
Ex. 유저네임이 admin, 비밀번호가 123456, 데이터베이스 이름이 MyDB
-> "mongodb+srv://admin:123456@cluster0.gnluu.mongodb.net/MyDB?retryWrites=true&w=majority"
// server.js
const express = require("express");
const app = express();
const mongoose = require("mongoose");
mongoose.connect("복사한 몽고디비 연결 URL", {
// 아래 두 옵션을 추가하지 않으면 경고를 출력한다.
useUnifiedTopology: true,
useNewUrlParser: true,
});
const db = mongoose.connection;
db.on("error", (err) => console.error(err));
db.once("open", () => console.log("데이터베이스 연결 성공"));
const accountRouter = require("./routes");
app.use("/account", accountRouter);
app.listen(5000, () => {
console.log("server started at 5000");
});
여기까지 잘 따라왔다면 데이터베이스가 프로젝트와 연결된 모습을 확인할 수 있다.
몽고디비를 연결하는 데까지 성공했으니 몽고디비에서 CRUD를 수행하는 방법은 다음 글에 나눠서 정리하도록 하겠다.
'💻 백엔드 > Node.js' 카테고리의 다른 글
리액트 & socket.io 기반 채팅 어플리케이션 만들기 - 클라이언트 편 (2) | 2021.02.03 |
---|---|
리액트 & socket.io 기반 채팅 어플리케이션 만들기 - 서버 편 (3) | 2021.02.03 |
Express.js & MongoDB 기반 REST api 구현하기 - 3편 (0) | 2021.01.02 |
Express.js & MongoDB 기반 REST api 구현하기 - 1편 (0) | 2020.12.30 |