dotenv로 환경변수 설정하기 & Node.js(Express)와 MongoDB 연동하기

Hayoung·2021년 5월 15일
2

Node.js

목록 보기
1/2
post-thumbnail

dotenv란?🤓

API 키나 계정의 ID, 비밀번호와 같은 기밀 정보를 있는 그대로 코드에 작성하거나,
기밀 정보가 담긴 코드를 Github과 같은 오픈소스에 공개하는 것은 보안적으로 아주 위험한 행동이다.

dotenv.env라는 외부 파일에 중요한 정보를 환경변수로 저장하여 정보를 관리할 수 있게 해준다.
그래서 dotenv를 사용하면, 전역적으로 필요한 정보나 기밀 정보와 같이 예민한 정보를
일반 소스 코드 내부가 아닌 .env라는 외부 파일에 작성할 수 있게 된다.

잊지 말아야할 것(!)은 중요한 정보가 담긴 .env파일을 git에 commit하면
파일 내용이 그대로 git에 박제(?) 되기 때문에
.gitignore.env 파일을 추가해주어 파일이 git에 올라가지 않도록 배제해준다.


dotenv 설치⤴️

dotenv를 사용하기 위해선 먼저 설치를 해줘야겠쥬?🤓

# npm
npm install dotenv

# yarn
yarn add dotenv

dotenv 사용해보기⭐️

이번에 dotenv를 사용하며 Node.js(Express)에서 MongoDB를 연결해보고자 한다.

1️⃣ .env 환경변수 파일 만들기

가장 먼저, 프로젝트의 루트 경로에 .env 라는 파일을 생성한다.

.env 파일에서 환경변수를 정의하는 방법

  • 변수명=값

변수명은 물론 자유롭게 정하면 된다. 아주 간단하다!

다음과 같이 .env 파일에 원하는 포트 번호와 MongoDB 주소를 환경변수로 정의해준다.

# .env
PORT=5000
MONGODB_URI=mongodb+srv://<id>:<password>@....

2️⃣ .env 파일을 .gitignore에 추가하기

위에서도 언급했듯이, .env 파일은 중요한 정보가 담겨있기 때문에
git에 업로드되지 않도록 .gitignore파일에 반!드!시 추가해준다.

# .gitignore
.env

3️⃣ .env 파일에서 작성한 환경변수 사용하기

프로젝트의 루트 디렉토리에 DB를 연결하는 파일인 index.js를 생성한다.
그 후 가장 먼저, index.js의 상단에 아래 코드를 작성하여 환경변수를 불러오도록 한다.

// index.js
require('dotenv').config();

.env로부터 불러온 환경변수를 사용하기 위해서는
process.env.변수명 키워드를 사용한다.

예를 들면, .env에서 선언된 환경변수인 PORTMONGODB_URI를 사용하려면
아래와 같이 작성해주는 것이다.

process.env.PORT
process.env.MONGO_URI

다음은 이를 이용하여 완성된 코드이다.

// index.js

require('dotenv').config(); // .env 파일에서 환경변수 불러오기
const { PORT, MONGO_URI } = process.env;

const express = require('express') // Express 모듈을 가져옴
const app = express() // app이라는 새로운 Express 앱을 만듦
const port = PORT || 4000 // 서버 포트 번호. .env에 PORT 값이 설정되어 있지 않다면 4000 사용

const mongoose = require('mongoose')
mongoose.connect(MONGO_URI, {
  useNewUrlParser: true,
  useUnifiedTopology: true,
  useCreateIndex: true,
  useFindAndModify: false
}).then(() => console.log("MongoDB Connected"))
  .catch(error => console.error(error))

// 루트 디렉토리에 오면 Hello World를 출력되게 함
app.get('/', (req, res) => {
  res.send('Hello World!')
})

// 위에서 설정한 port에서 앱을 실행시킴
app.listen(port, () => {
  console.log(`Example app listening at http://localhost:${port}`)
})

구현 결과🙌

Example app listening at http://localhost:5000
MongoDB Connected

MongoDB Connected.
서버를 실행해보면 위의 캡쳐와 같이 오류 없이 잘 실행되는 모습이다😋
Node.js(Express)MongoDB를 연결하는 것에 성공했다.
포트 번호도 .env에서 설정한 5000 그대로 잘 설정되었다⭐️


마치며

dotenv를 사용한 환경변수를 설정하는 방법과
Node.js(Express)MongoDB를 연결하는 방법에 대해 알아보았다.

환경변수를 저장한 .env 파일은 반드시 .gitignore에 추가하여
git에 commit할수 없도록 설정하는 것을 잊지 말자!

profile
Frontend Developer. 블로그 이사했어요 🚚 → https://iamhayoung.dev

0개의 댓글