- 개발환경
# 개발환경 os : windows10 Pro 64bit tool : visual studio code npm : v6.9.0 nodejs : v10.16.0 |
- 목적
: 환경변수를 따로 분리하여 작성하기 위함, DB url을 노출시키지 않기 위함, 노드 보안처리
계정정보, ACCESS-KEY와 같은 정보를 노출시키지 않기 위함
* 소스 디렉토리
# 소스 디렉토리 [ROOT] ㄴ app.js ㄴ config.env ㄴ [config] ㄴ dev.js ㄴ prod.js ㄴ logger.js ㄴ [routes] ㄴ router1.js ㄴ router2.js |
0. 사전준비
https://bogyum-uncle.tistory.com/72
1. 환경설정 관련 서드파티 모듈(dotenv) 설치
2. /appRoot에 환경설정을 위한 .env 파일 생성
/appRoot/config.env
#PROJECT config
NODE_MODE=dev
#DB config
DB_NAME=mysqlDb
DB_USER=root
DB_PASS=root
DB_HOST=localhost
DB_PORT=3306
3. /appRoot/app.js 수정
3.1. dotenv 모듈 등록, app.js 일부 내용 수정
3.1.1. dotenv 모듈 등록
//proces.env에 .env의 내용이 들어감
require("dotenv").config({path: __dirname + '\\' + 'config.env'});
console.log(process.env.DB_NAME);
3.1.2. 소스
//Express를 변수에 담기
var express = require("express");
//Express 호출 후 새로운 Express 애플리케이션을 변수(app)에 넣음
var app = express();
var http = require("http");
var path = require("path");
/**
* express.static, 정적 파일 서비스 제공
*/
//path.resoleve : os에 따라 /public 혹은 \public 처럼 분리자가 다를 수 있지만 이 부분을 처리해 준다.
//__dirname : 현재 위치를 가리키는 node 전역변수
var publicPath = path.resolve(__dirname, "public");
app.use(express.static(publicPath));
/**
* config 설정파일 (환경변수 관리)
* dotenv 노드 보안 (서버, DB 정보 등)
*/
//proces.env에 .env의 내용이 들어감
require("dotenv").config({path: __dirname + '\\' + 'config.env'});
console.log(process.env.DB_NAME);
let config;
if(!process.env.NODE_ENV == 'dev'){
config = require('./config/dev');
}else if(process.env.NODE_ENV == 'prod'){
config = require('./config/prod');
}else{
config = require('./config/dev');
}
console.log(config.info);
/**
* logger
*/
var logger = require('./config/logger');
app.use(require("morgan")("combined", {"stream": logger.stream}));
/**
* Routing 경로 설정
*
* app.js에서 생성된 데이터를 사용하기 위해서 require에서 app이란 객체를 전달
*/
app.use('/r1', require('./routes/router1')(app));
app.use('/r2', require('./routes/router2')(app));
app.use(function(request, response){
//4XX : 클라이언트 오류
response.statusCode = 404;
response.end("404 Error!");
});
app.listen(3000, function(){
console.log("Server Running : 3000....!");
});
'LANGUAGE > NODEJS' 카테고리의 다른 글
[NODEJS] Mysql CRUD (0) | 2019.08.30 |
---|---|
[NODEJS] Mysql 연동 2/ 세팅, 테이블 생성 (0) | 2019.08.30 |
[NODEJS] logger(morgan + winston) (0) | 2019.08.28 |
[NODEJS] express, routing (0) | 2019.08.26 |
[NODEJS] express , 개발, 운영환경 구분 (NODE_ENV) (0) | 2019.08.26 |