일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 환경설정
- 집합_SET
- 참조형변수
- GRANT VIEW
- 추상메서드
- 사용자예외클래스생성
- NestedFor
- 컬렉션 타입
- 메소드오버로딩
- 오라클
- exception
- 한국건설관리시스템
- 객체 비교
- 인터페이스
- 정수형타입
- 자바
- abstract
- cursor문
- Java
- 어윈 사용법
- 대덕인재개발원
- 예외처리
- EnhancedFor
- 제네릭
- oracle
- 자동차수리시스템
- 예외미루기
- 다형성
- 컬렉션프레임워크
- 생성자오버로드
- Today
- Total
거니의 velog
(14) mongoose를 이용한 MongoDB 연동 실습 3 본문
3. mongoose의 설치 및 적용
* mongoose는 Node.js 환경에서 사용하는 MongoDB 기반 ODM(Object Data Modeling) 라이브러리이다. 이 라이브러리는 데이터베이스 문서들을 자바스크립트 객체처럼 사용할 수 있게 해준다.
* 이전에 만든 백엔드 프로젝트를 이어서 진행해 보겠다. 프로젝트 디렉터리에서 다음 명령어를 입력하여 mongoose와 dotenv를 설치하자.
$ yarn add mongoose dotenv
* dotenv는 환경변수들을 파일에 넣고 사용할 수 있게 하는 개발 도구이다. mongoose를 사용하여 MongoDB에 접속할 때, 서버에 주소나 계정 및 비밀번호가 필요할 경우도 있다. 이렇게 민감하거나 환경별로 달라질 수 있는 값은 코드 안에 직접 작성하지 않고, 환경변수로 설정하는 것이 좋다. 프로젝트를 깃허브(GitHub), 깃랩(GitLab) 등의 서비스에 올릴 때는 .gitgnore를 작성하여 환경변수가 들어 있는 파일은 제외시켜 주어야 한다.
(1) .env 환경변수 파일 생성
* 환경변수에는 서버에 사용할 포트와 MongoDB 주소를 넣어 주겠다. 프로젝트의 루트 경로에 .env 파일을 만들고 다음 내용을 입력하자.
PORT=4000
MONGO_URI=mongodb://localhost:27017/blog
* 여기서 blog는 우리가 사용할 데이터베이스 이름이다. 지정한 데이터베이스가 서버에 없다면 자동으로 만들어 주므로 사전에 직접 생성할 필요는 없다.
* 다음으로 src/index.js 파일의 맨 위에 다음과 같이 dotenv 를 불러와서 config() 함수를 호출해 주어야 한다. Node.js에서 환경변수는 process.env 값을 통해 조회할 수 있다.
require('dotenv').config();
const Koa = require('koa');
const Router = require('koa-router');
const bodyParser = require('koa-bodyparser');
// 비구조화 할당을 통해 process.env 내부 값에 대한 레퍼런스 만들기
const { PORT } = process.env;
console.log('PORT : ', PORT);
const api = require('./api');
const app = new Koa();
const router = new Router();
// 라우터 설정
router.use('/api', api.routes()); // api 라우트 적용
// 라우터 적용 전에 bodyParser 적용
app.use(bodyParser());
// app 인스턴스에 라우터 적용
app.use(router.routes()).use(router.allowedMethods());
// PORT가 지정되어 있지 않다면 4000을 사용
const port = PORT || 4000;
app.listen(port, () => {
console.log('Listening to port %d', port);
});
* .env 파일에서 PORT를 4001로 변경한 뒤 서버를 한번 재시작해 보자. .env 파일을 변경할 때는 nodemon에서 자동으로 재시작하지 않으므로 직접 재시작해야 한다.
* 바뀐 포트로 실행된 것을 확인했는가? 이제 다시 4000으로 복구하고 서버를 재시작하자.
(2) mongoose 로 서버와 데이터베이스 연결
* 이제 mongoose를 이용하여 서버와 데이터베이스를 연결하겠다. 연결할 때는 mongoose의 connect 함수를 사용한다.
[src/index.js]
require('dotenv').config();
const Koa = require('koa');
const Router = require('koa-router');
const bodyParser = require('koa-bodyparser');
const mongoose = require('mongoose');
// 비구조화 할당을 통해 process.env 내부 값에 대한 레퍼런스 만들기
const { PORT, MONGO_URI } = process.env;
mongoose
.connect(MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true }) // useUnifiedTopology 추가
.then(() => {
console.log('Connected to MongoDB...');
})
.catch((e) => {
console.error(e);
});
const api = require('./api');
const app = new Koa();
const router = new Router();
// 라우터 설정
router.use('/api', api.routes()); // api 라우트 적용
// 라우터 적용 전에 bodyParser 적용
app.use(bodyParser());
// app 인스턴스에 라우터 적용
app.use(router.routes()).use(router.allowedMethods());
// PORT가 지정되어 있지 않다면 4000을 사용
const port = PORT || 4000;
app.listen(port, () => {
console.log('Listening to port %d', port);
});
* 코드를 저장한 뒤 터미널에서 다음과 같은 문구가 출력되면 데이터베이스에 성공적으로 연결된 것이다.
* 이제 mongoose를 사용하기 위한 준비를 마쳤다.
'React_백엔드 프로그래밍' 카테고리의 다른 글
(16) mongoose를 이용한 MongoDB 연동 실습 5 (0) | 2024.02.20 |
---|---|
(15) mongoose를 이용한 MongoDB 연동 실습 4 (0) | 2024.02.20 |
(13) mongoose를 이용한 MongoDB 연동 실습 2 (0) | 2024.02.20 |
(12) mongoose를 이용한 MongoDB 연동 실습 1 (0) | 2024.02.20 |
(11) 백엔드 프로그래밍: Node.js의 Koa 프레임워크 5 (0) | 2024.02.20 |