작은 도서관
article thumbnail

셀프 레퍼런스

https://flreauniverse.tistory.com/23 (mongoDB cluster 생성하기)

 

개요

  • MongoDB cluster URI 따오기
  • 포트를 환경변수로 분리하기
  • DB cluster와 연결하기

MongoDB cluster URI 따오기

https://www.mongodb.com/

MongoDB 페이지에 접속 후 로그인합니다.

cluster 메인 페이지에 보이는 Connect 버튼을 누르고, Connect your application을 누릅니다.

그리고 nodejs로 설정한 뒤, 두번째에 있는 링크를 복사해주세요.

mongodb+srv://<username>:<password>@cluster0.evl85.mongodb.net/myFirstDatabase?retryWrites=true&w=majority

이 프로젝트에선 해당 URI 전체를 사용하겠습니다.

<password>를 지우고 앞에 있는 아이디에 해당하는 비밀번호를 적어주세요.

그리고 myFirstDatabase부분을 원하는 이름으로 바꿔주세요.

.env파일로 환경변수 적용하기

필요한 패키지를 설치해주세요.

> yarn add mongoose dotenv

mongoose는 데이터베이스에 연결하고 여러 작업을 할 수 있게 해주는 패키지, dotenv는 환경변수를 설정할 수 있도록 하는 패키지입니다.

일단, 시험삼아 환경변수를 하나 만들어봅시다.

// index.js
import express from 'express';
import postRouter from './router/post';

const app = express();

app.use("/post", postRouter);

app.listen(3000, () => {
  console.log('server on port: 3000');
});

현재 index.js파일은 이렇게 생겼고, 서버는 무조건 3000번 포트에서만 열립니다.

여기선 포트를 환경변수로 만들겠습니다.

src폴더 바깥에 .env파일을 만들어주세요. 이름 없이 확장자만 만드시면 됩니다.

./env
PORT=8000

.env에는 띄어쓰기 없이, 대문자만 적습니다.

띄어쓰기가 필요한 경우 _(언더바)를 사용하세요.

또한 .env는 도트엔브 내지는 닷엔브, 또는 그냥 환경변수 파일이라고 합니다. 이엔브이, 엔브등 여러가지로 읽더군요.

 

그리고 index.js 파일로 돌아와서 코드를 일부 고쳐주세요.

import 'dotenv/config';

...

app.listen(process.env.PORT, () => {
  console.log(`server on port: ${process.env.PORT}`);
});

함수를 저장하지 않고 바로 불러오면 바로 실행하게 됩니다. 즉, dotenv패키지의 config함수를 실행했습니다.

.env파일의 환경변수는 파일 어디서나 process.env.[변수명]으로 불러올 수 있습니다.

그리고 서버를 실행하면, 이번엔 포트 8000번에서 열리는걸 확인할 수 있습니다.

간혹 서버를 여러개 돌릴 때 환경변수만 바꿔주면 되니 편리하겠죠?

DB cluster와 연결하기

먼저, 환경변수에 아까 가공한 DB의 URI를 추가해줍니다.

PORT=8000
DB_URI=//여기에 넣으세요. 띄어쓰기는 하면 안됩니다.

이번에도 index.js를 편집해주세요.

// index.js
import mongoose from 'mongoose';

mongoose.connect(process.env.DB_URI)

연결이 되었을 경우와 실패했을 경우 핸들러를 추가하는게 좋겠지만, 다음에 핸들러에 대해 다룰때 추가하겠습니다.

profile

작은 도서관

@Flrea

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!