본문 바로가기
Web/React Node js

노드 기초 강의 (7) - 비밀 설정 정보 관리

by SeleniumBindingProtein 2022. 2. 27.
728x90
반응형

1. 소스코드를 Gist에 업로드하면 다른 사람들이 비밀 정보들을 다 볼 수 있기 때문에, 비밀 정보들을 private하게 관리해야 됨

    .gitignore : .gitignore 파일을 이용하면 파일 안에 들어있는 내용들을 Gist에 업로드 하지 않도록 관리할 수 있음

    Local(Development) : 개발 모드

    Deploy(Production) : 운영 모드

 

2. 개발 모드 private 설정 

     - 비밀 정보를 변수에 담아 사용 가능하며, 몽고디비의 아이디와 비밀번호가 담긴 코드를 private 하게 설정하고 싶은 경우 

     - config 폴더에 key.js, dev.js, prod.js 파일을 만듦

     - dev.js 파일에 변수로 담아 관리하면 되며,

 - Heroku 사이트에서 프로그램을 활용하여 간단하게 무료로 호스팅 할 수 있도록 해주며, 링크 코드를 private하게 숨길 수 있음

- prod.js

module.exports = {
    mongoURI: process.env.MONGO_URI
}

 - dev.js

module.exports={
    mongoURI:'mongodb+srv://아이디:비밀번호@cluster0.syb7f.mongodb.net/myFirstDatabase?retryWrites=true&w=majority'
}

- key.js

if(process.env.NODE_ENV === 'production'){
    module.exports = require('./prod');
}
else{
    module.exports = require('./dev');
}

- index.js 에 불러오면 됨

const express = require('express')
const app = express()
const port = 6660

//config 폴더에 있는 key.js를 불러옴
const config = require('./config/key');

const {User} = require("./models/User");
const bodyParser = require('body-parser');
//application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({extended: true}));
//application/json
app.use(bodyParser.json());

const mongoose = require('mongoose')
mongoose.connect(config.mongoURI, {	//코드 변경
}).then(() => console.log('MongoDB Connected...'))
  .catch(err => console.log(err))

app.get('/', (req, res) => {
  res.send('Hello World! nodemon')
})

app.post('/register', (req,res) =>{
    //회원 가입할 때 필요한 정보들을 client에서 가져오면 그것들을 데이터베이스에 넣어준다. 
    
    const user = new User(req.body)
    user.save((err, userInfo) => {
        if(err) return res.json({success: false, err})
        return res.status(200).json({
            success: true
        })
    })
})



app.listen(port, () => {
  console.log('Example app listening on port ${port}')
})

[결과]

728x90
반응형

댓글