당신은 node js와 express를 사용해서 테스트 api를 만들었다.
이 후 aws같은 실제 서버에 올리기 위해서는 env 파일 관리를 통해 dev, prod 로 구분하여 db 관리를 해주는 작업이 필요하다.
해당 작업을 통해 .env.dev 로는 개발할때
.env.prod는 서버에서 돌리도록 한다.
환경변수 설정을 하기 전에 cross-env와 dotenv를 설치해주자.
npm insatll --save cross-env
npm install --save dotenv
두가지의 env 파일을 프로젝트 파일에 넣어주자
필요한 두가지 파일은 .env.dev 파일과 .env.prod 파일이다.
//.env.dev
DBIP=ip주소
DBPORT=포트번호
DBNAME=디비이름
DBUSERNAME=유저이름
DBPASSWORD=유저비밀번호
초반 설정이기 때문에 동일하게 만들어 주도록 하자.
pord와 dev 설정을 다르게 하고 싶을 땐 변수명을 다르게해서 추가해주면 된다.
if (process.env.NODE_ENV === 'production') dotenv.config({ path: './.env.prod' });
if (process.env.NODE_ENV === 'development') dotenv.config({ path: './.env.dev' });
위 코드를 app.js에 추가해준다.
"scripts": {
"start": "nodemon ./bin/www",
"dev": "cross-env NODE_ENV=development node ./bin/www",
"dev-watch": "cross-env NODE_ENV=development nodemon ./bin/www",
"prod": "cross-env NODE_ENV=production node ./bin/www"
},
package.json 파일에 들어가서 scripts 부분에 dev, dev-watch, prod 부분을 추가해준다.
이후에는 프로그램을 구동시킬때 npm run dev, npm run prod로 각각 실행을 시킬 수 있다.
git에 push하기 전에 gitignore파일을 만들어서
git에 env파일이 올라가지 않도록 설정해주자.
//.gitignore
.env
.vscode
/logs
package-lock.json
/node_modules
나는 error나 info를 logs 폴더에 쌓아두고 있는데 /logs 폴더도 git에 push하지 못하도록 만들었다.
만약 git init을 해준 적이 있다면 폴더에서 .git 파일을 지우고 시작하자!
- 폴더에서 .git 폴더 삭제 (.git 파일이 존재하지 않는다면 안해도 됨)
- git init
- .gitignore 파일 있는지 확인
- git add .
- git commit -m "first commit"
- git remote add origin 깃 주소
- git push origin main
npm run dev
npm run prod
로 환경별로 프로그램 구동이 가능하다.
'Computer Engineering > Node.js' 카테고리의 다른 글
[nodejs] 알리고 api로 카톡 메세지 전송하기 -2 (0) | 2022.05.19 |
---|---|
[nodejs] 알리고 api로 문자 메세지 전송하기 -1 (0) | 2022.05.18 |
[nodejs] Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client (0) | 2022.05.13 |
[node js] econnrefused 127.0.0.1:3306 sql connect err 해결 (0) | 2022.04.14 |
[node js] datebase 이중 연결하기, Error: read ECONNRESET 원인 및 해결법 (0) | 2022.03.28 |