포시코딩

Node.js, MongoDB 로 웹서비스 만들기 - 7. MongoDB 세팅 및 연결(2) 본문

Node.js

Node.js, MongoDB 로 웹서비스 만들기 - 7. MongoDB 세팅 및 연결(2)

포시 2022. 6. 9. 22:08
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 이 뜬다. 

 

 

 

 

https://4sii.tistory.com/15

 

Node.js, MongoDB 로 웹서비스 만들기 - 8. Ajax 로 post 요청

로그인 하려면 아이디가 있어야 되니까 회원가입부터 만들거임 회원가입 입력폼 회원가입 아이디 비밀번호 회원가입 뒤로 이대로 회원가입 버튼을 submit 해서 보내도 되지만 ajax 를 이용해 데이

4sii.tistory.com

728x90