Auth Boiler Plate with Node.js-Nodemon, 설정정보 관리
27 Apr 2021 | Node.jsBoiler Plate with Node.js - Nodemon, 설정정보 관리
Nodemon
코드 수정시 자동으로 서버를 재시작하는 유용한 패키지이다
npm i --save-dev nodemon
development 환경에서만 필요한 패키지이므로 dev로 패키지를 설치했다
package.json의 scripts에 명령어를 추가한다
기존 start 명령어를 node index.js로 연결했는데 이제 nodemon index.js를 이용하여 실행하면 된다
명령어 이름은 아무거나 편한데로~
비밀 설정정보 관리
몽고DB의 connect용 application code에 내 아이디, 비밀번호 같은 노출하면 안되는 정보가 적혀있다
이런 파일들은 모두가 이용하는 깃헙 등에 포스팅하게 되면 악용의 위험이 있다
config라는 폴더를 만들어 dev.js에 다음과 같이 적었다
module.exports = {
mongoURI:
'mongodb+srv://<id>:<pwd>@ytubecloneproject.rzk32.mongodb.net/myFirstDatabase?retryWrites=true&w=majority',
};
저 모듈은 ignore에 추가해서 업로드를 막는다
개발모드에서는 저 모듈을 가져와서 사용하면 되지만 배포 후에는 외부 서비스를 이용한다
heroku.com 헤로쿠에 접속하여 회원가입 후 settings에 key, value로 위 모듈에서 적었던 것을 입력한다
배포 후에는 이 헤로쿠의 서비스를 이용하여 application code를 삽입한다
개발환경과 배포환경의 분기점을 나눌 파일을 생성한다
config 폴더에 key.js와 prod.js를 추가적으로 생성
// key.js
if (process.env.NODE_ENV === 'production') { // 분기점을 나눈다
module.exports = require('./prod');
} else {
module.exports = require('./dev');
}
// prod.js
module.exports = {
mongoURI: process.env.MONGO_URI, // MONGO_URI는 Heroku에 등록한 key값과 동일하게 작성
};
// index.js
const config = require('./config/key');
mongoose
.connect(config.mongoURI, { // 기존 코드 제거 후 key.js를 사용
useNewUrlParser: true,
useUnifiedTopology: true,
useCreateIndex: true,
useFindAndModify: false,
})
.then(() => console.log('MongoDB Connected..'))
.catch((err) => console.log(err));
접속 테스트 성공을 확인한다