-
MERN 기본파일 만들기 - 3)nodemon 설치하고 private정보 숨기기NODE.JS 2021. 5. 13. 13:12
매번 변경사항이 저장될때마다 다시 서버를 껐다가 다시 킬 필요없이 바로 적용되게끔 nodemon을 설치하자
terminal에
npm install nodemon --save-dev를 실행시켜준다.
여기서 -dev는 개발 단계에서만 필요하기 때문에 개발모드에만 적용시키는 것이다.
start만 눌러도 nodemon이 실행되도록 package json부분을 수정해준다.
"scripts": { "start": "node server/index.js", "backend": "nodemon server/index.js",
npm run backend만 눌러줘도 알아서 서버부분의 index.js를 nodemon으로 실행시켜준다.
mongodb의 cluster 주소나 아이디, 비밀번호의 경우 노출되면 안되는 private한 정보이기 때문에
env 파일로 숨겨줄 것이다.
다음과 같은 파일폴더에 파일들을 생성한다.
각각 key값에 따라서 개발중이라면 dev, 배포한다면 prod 가 실행될것이다. 1. key.js
//모듈에 따라서 production으로 할지 dev로 할지 나눠서 진행한다. if (process.env.NODE_ENV==='production'){ module.exports = require('./prod'); } else{ module.exports = require('./dev'); }
2. dev.js
//develop단계에서는 private한 요소를 많이 넣는다. module.exports = { //민감한 내용인 mongodb 주소랑 아이디, 비밀번호를 여기로 옮긴다. (index.js에서) //heroku를 사용한다면 이부분을 복사해서 헤로쿠한테 알려준다(그래서 production모드에서 사용할 수 있게) mongoURI: 'mongodb+srv://yunhalee:8!ehxhflanr@react-blog.azfvq.mongodb.net/myFirstDatabase?retryWrites=true&w=majority' }
3. prod.js
module.exports = { mongoURI :process.env.MONGO_URI }
4. index.js를 다음과 같이 수정해준다.(민감한 정보를 가져와서 쓰는 것으로 바꾼다)
const express = require('express'); const app = express(); const mongoose = require('mongoose');//mongodb와의 연결 const bodyParser = require('body-parser'); const cookieParser = require('cookie-parser'); const config = require('./config/key')//개발, 배포모드에 따라서 달라지는 Key 이용한다. mongoose.connect(config.mongoURI, {useNewUrlParser: true, useUnifiedTopology: true}) .then(()=>console.log('DB connected')) .catch(err=>console.error(err));
또한 dev.js와 같이 민감한 정보가 포함되어 있는 사항은 git에 업로드 되지 않도록
gitignore파일에 dev파일을 추가해준다.
5. gitignore
/node_modules /build dev.js .DS_Store npm-debug.log* yarn-debug.kog* yarn-error.log* .vscode
'NODE.JS' 카테고리의 다른 글
MERN 기본파일 만들기 - 5)login 기능 만들기(jsonwebtoken 사용) (0) 2021.05.13 MERN 기본파일 만들기 - 4)회원의 비밀번호 hash코드로 숨기기(bcrypt) (0) 2021.05.13 MERN 기본파일 만들기 - 2) GIT설치하고 연결, SSH 파일 생성하고 등록하기 (0) 2021.05.10 MERN 기본파일 만들기 - 1) node, express 실행하고 mongodb연결하기, BodyParser & Postman 이용해서 register생성 (0) 2021.05.10 Youtube 만들기) 1.BoilerPlate설치하고 MongoDB 연결하기 (0) 2021.04.28