Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- react
- JavaScript
- 정렬
- game
- cookie
- dfs
- Dinosaur
- Bull
- OCR
- mongoose
- MySQL
- 자료구조
- flask
- typeORM
- 공룡게임
- Python
- nodejs
- TypeScript
- jest
- MongoDB
- GIT
- Queue
- AWS
- nestjs
- Sequelize
- class
- Express
- 게임
- Nest.js
Archives
- Today
- Total
포시코딩
Node.js, MongoDB 로 웹서비스 만들기 - 7. MongoDB 세팅 및 연결(2) 본문
728x90
const db_url = 'mongodb+srv://admin:<password>@cluster0.pygfy.mongodb.net/?retryWrites=true&w=majority';
이전 게시물에서 안내한대로 세팅한 db_url 의 admin 과 password 부분에는
당연히 클러스터를 만들며 세팅한 사용자명과 비밀번호가 대신 들어가면 된다.
실제로 회사 다니면서 여러 서버를 관리하며 느낀건
이런 기본 세팅들은 다 비슷하게 하고
저런 바뀔 수 있는 부분만 따로 빼내어 관리하면
해당 프로젝트 세팅을 복사해서 차기 프로젝트를 만들기도 쉽고
깃허브 같은 버전관리툴에도 코드랑 같이 업로드 할 필요가 없어서 보안적으로도 좋다는 것이다.
그래서 나는 다음과 같이 코드를 변경해봤다.
// const db_url = 'mongodb+srv://admin:<password>@cluster0.pygfy.mongodb.net/?retryWrites=true&w=majority';
const db_id = 'admin';
const db_pw = '??';
const db_cluster = 'cluster0';
const db_url = 'mongodb+srv://' + db_id + ':' + db_pw + '@' + db_cluster + '.pygfy.mongodb.net/?retryWrites=true&w=majority';
let db;
MongoClient.connect(db_url, (error, client) => {
if (error) {
return console.log(error);
} else {
app.listen(8080, () => {
global.db = client.db('nfp');
console.log('server on');
})
}
})
이제 url 밖으로 빼놓은 변수들을 파일 밖에 세팅해보자
1. 터미널에서 dotenv 설치
npm instal dotenv
2. server.js 에 dotenv 사용 선언
require('dotenv').config();
3. server.js 와 같은 경로에 .env 파일 생성 후 다음 내용 입력
DB_ID="admin"
DB_PW="??"
DB_CLUSTER="cluster0"
SERVER_PORT=8080
-> 변수 이름은 보통 대문자로 쓰기
-> 등호(=)로 값을 설정한다
-> 사용법 -> process.env.변수이름
// const db_url = 'mongodb+srv://admin:<password>@cluster0.pygfy.mongodb.net/?retryWrites=true&w=majority';
const db_id = process.env.DB_ID;
const db_pw = process.env.DB_PW;
const db_cluster = process.env.DB_CLUSTER;
const server_port = process.env.SERVER_PORT;
const db_url = 'mongodb+srv://' + db_id + ':' + db_pw + '@' + db_cluster + '.pygfy.mongodb.net/?retryWrites=true&w=majority';
let db;
MongoClient.connect(db_url, (error, client) => {
if (error) {
return console.log(error);
} else {
app.listen(server_port, () => {
global.db = client.db('nfp');
console.log('server on');
})
}
})
서버의 포트(8080) 까지 env 파일로 빼냈다.
DB 연결에 실패하면 콘솔에 에러를 출력할거고
성공한다면 서버를 8080 포트로 실행시킬거임. 테스트 ㄱㄱ
정상적으로 server on 이 뜬다.
728x90
'Node.js' 카테고리의 다른 글
Node.js, MongoDB 로 웹서비스 만들기 - 9. 회원가입(1) - INSERT (3) | 2022.06.10 |
---|---|
Node.js, MongoDB 로 웹서비스 만들기 - 8. Ajax 로 post 요청 (0) | 2022.06.10 |
Node.js, MongoDB 로 웹서비스 만들기 - 6. MongoDB 세팅 및 연결(1) (0) | 2022.06.09 |
Node.js, MongoDB 로 웹서비스 만들기 - 5. express.router (라우터 분리) (0) | 2022.06.09 |
Node.js, MongoDB 로 웹서비스 만들기 - 4. login page (0) | 2022.06.09 |