셀프 레퍼런스
https://flreauniverse.tistory.com/23 (mongoDB cluster 생성하기)
개요
- MongoDB cluster URI 따오기
- 포트를 환경변수로 분리하기
- DB cluster와 연결하기
MongoDB cluster URI 따오기
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)
연결이 되었을 경우와 실패했을 경우 핸들러를 추가하는게 좋겠지만, 다음에 핸들러에 대해 다룰때 추가하겠습니다.
'개발 > Express' 카테고리의 다른 글
[express] Request Body에 대한 Custom Interface 작성 (0) | 2024.10.07 |
---|---|
[express] 유저 crud와 토큰을 이용한 로그인 구현 (0) | 2023.07.23 |
[express] Schema와 Model을 생성하고 데이터 저장하기 (0) | 2023.07.08 |
[express] 필요한 api 라우팅하기 (0) | 2022.03.07 |
[express] 개요 (1) | 2022.03.05 |