본문 바로가기
Front-end/Node.js

#6. 환경 변수 process.env.NODE_ENV 설정하기

by 예닌잉 2020. 11. 25.
728x90

비밀 설정 정보 관리 🔐

git에 올릴때 DB 또는 IP 등의 정보를 비밀로 설정하기 위해 .gitignore에 설정을해주어야한다.

config라는 폴더를 만들고, dev.js 파일을 만들어 다음과 같이 설정해준다.

 

 

환경변수 process.env.NODE_ENV ⚙️

보통 개발을 진행할때 두가지의 환경에서 할 수 있다. Local환경의 development 환경, Deploy(배포)한 후 production 환경으로 나뉜다.

따라서 개발환경과 운영서버환경에서의 환경 변수를 따로 설정해주어야한다.

다음과 같이 개발서버, 운영서버의 환경을 나누어줄 파일을 생성하여 각각 다음과 같이 작성해준다

 

dev.js ( 개발 서버 ) 

module.exports = {
    mongoURI:'개인 mongoDB'
};

key.js ( key 설정 )

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

prod.js ( 운영 서버 )

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

마지막으로 index.js에서

const config = require('./config/key');

const mongoose = require("mongoose");
mongoose.connect(config.mongoURI, {
    useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex: true, useFindAndModify: false
}).then(() => console.log("MongoDB Connected…"))
    .catch(err => console.log(err));

 

개인 mongoDB의 주소를 지우고 환경변수를 설정해주면 비밀 정보 설정하는데 끝 !

 

 

환경변수 설정 후 index.js

const express = require('express'); // package.json 에 있는 express 모듈을 가져온다.
const app = express(); // express을 이용하여 app을 만든다.
const port = 3000;
const bodyParser = require('body-parser');

const config = require('./config/key');

const { User } = require("./model/User");

// application/x-www-form-urlencoded  와 json 형태를 가져와
// 이렇게 되어있는 데이터를 분석해서 가져 올 수 있도록 도와주는 것
app.use(bodyParser.urlencoded({extend:true}));
app.use(bodyParser.json());

const mongoose = require("mongoose");
mongoose.connect(config.mongoURI, {
    useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex: true, useFindAndModify: false
}).then(() => console.log("MongoDB Connected…"))
    .catch(err => console.log(err));



app.get('/', (req, res) => res.send('Hello World!-~ 안녕하세요 ~'));

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 at http://localhost:${port}`)
});

 

 

.gitignore

node_modules

dev.js

다음과 같이 작성하여 git에 push하게 되면, dev.js 파일의 내용은 보여지지 않는다.

반응형

'Front-end > Node.js' 카테고리의 다른 글

#8. Auth 기능 만들기  (0) 2020.12.26
#7. Bcrypt 로 비밀번호 암호화 하기  (0) 2020.12.12
#5. Nodemon 설치  (0) 2020.11.24
#4. BodyParser & Postman & 회원 가입 기능  (0) 2020.11.18
#3. MongoDB Model & Schema 만들기  (0) 2020.11.17