Archive

Auth Boiler Plate with Node.js-Nodemon, 설정정보 관리

|

Boiler Plate with Node.js - Nodemon, 설정정보 관리


Nodemon

코드 수정시 자동으로 서버를 재시작하는 유용한 패키지이다

npm i --save-dev nodemon development 환경에서만 필요한 패키지이므로 dev로 패키지를 설치했다

package.json의 scripts에 명령어를 추가한다

기존 start 명령어를 node index.js로 연결했는데 이제 nodemon index.js를 이용하여 실행하면 된다

명령어 이름은 아무거나 편한데로~

nodemon


비밀 설정정보 관리

몽고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));

접속 테스트 성공을 확인한다



참고 자료


기초 노드 리액트 강의 - John Ahn