본문 바로가기

DataBase

im-sprint-cmarket-database 2. 서버 -1

1. 먼저, 서버 폴더로 들어가서 npm install 명령어로 필요한 모듈을 설치.

--> npm install 명령어를 적으면, package.json에 'dependencies'에 적혀있는 모듈들이 한꺼번에 설치된다.

"dependencies": {
    "@codestates-cc/submission-npm": "^1.1.3",
    "cors": "^2.8.5",
    "dotenv": "^8.2.0",
    "express": "^4.17.1",
    "morgan": "^1.10.0",
    "mysql": "^2.18.1",
    "nodemon": "^2.0.7"
  }

여기서 'mysql'모듈 : Cmarket Server가 MySQL server와 상호작용할 수 있게 한다.

 

 

2. 비밀번호를 코드에 작성할 수도 있겠지만, 보안상/편의상 이유로 비밀번호는 '환경 변수'로 분리해놓는 편이 더 좋다.

github과 같이 공개된 환경에 비밀번호가 노출되면 안되기 때문에, 환경 변수를 관리하는 파일(.env)은 반드시 '.gitignore'파일에 등록해야한다.

 

1> 먼저 비밀번호를 .env 파일에 환경변수로 저장해둔다. 

DATABASE_SPRINT_PASSWORD=''

 

2> .gitignore파일에 .env 등록하기. 

그러면 git에 올려도 .env파일은 업로드 되지 않는다.

.env  //.gitignore파일에 적기

 

3> config.js파일에 'dotenv'모듈을 불러오면 환경변수를 사용할 수 있게 된다.

환경변수 사용 시, process.env.뒤에 변수 적으면 된다.

즉, process.env.DATABASE_SPRINT_PASSWORD === .env파일에 적어둔 DATABASE_SPRINT_PASSWORD값

const dotenv = require('dotenv'); //'dotenv'모듈 설치
dotenv.config(); //dotenv에서 config 내장함수 불러오기

const config = {
  development: {
    host: 'localhost',
    user: 'root',
    password: process.env.DATABASE_SPRINT_PASSWORD, //.env에 저장해둔 환경변수 사용
    database: 'cmarket'
  },
  test: {
    host: 'localhost',
    user: 'root',
    password: process.env.DATABASE_SPRINT_PASSWORD,
    database: 'cmarket_test'
  }
};

module.exports = config;

 

3. 서버 실행 : npm run start

"scripts": {
    "start": "nodemon app.js"
  }