You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
2.0 KiB
54 lines
2.0 KiB
"use strict";
|
|
|
|
const path = require("path");
|
|
const fs = require("fs");
|
|
/**
|
|
* App 개발환경 정의
|
|
* ------------------------------------------------------------------------------------
|
|
* 정의되지 않은 경우 자동으로 false 처리
|
|
* 어플리케이션을 실행할때 입력한 추가 argument를 통해 dev와 prod 상태를 구분합니다.
|
|
* package.json 에서 서버 구동 npm script를 작성할때 뒤에 붙인 --dev 옵션입니다.
|
|
*/
|
|
global.isDev = ( process.argv.length > 2 && process.argv[2] === '--dev' )
|
|
|
|
/**
|
|
* App Document Root 지정
|
|
* ------------------------------------------------------------------------------------
|
|
* back-end 루트를 절대경로 구해와서 root 라는 글로벌 변수에 할당합니다.
|
|
* 우리가 주로 로드해서 사용할 모듈폴더 (modules) 역시 글로벌 변수에 할당합니다.
|
|
*/
|
|
global.root = path.resolve(__dirname + '/../../app');
|
|
global.modulePath = root + '/modules'
|
|
|
|
/**
|
|
* 사용 환경에 따른 APP 개발 환경설정 불러오기
|
|
* ------------------------------------------------------------------------------------
|
|
* 위의 개발환경에 따라 config폴더에서 각각 다른 파일을 불러오도록 합니다.
|
|
* config.development.js , config.production.js 파일 두파일로 분리됩니다.
|
|
*/
|
|
global.appConfig = require(path.resolve(root + '/config/config.' + (isDev?'development':'production') + '.js'));
|
|
|
|
|
|
/**
|
|
* 모듈 불러오기
|
|
* @param moduleName 모듈 이름
|
|
* @param moduleType 모듈 타입
|
|
* @returns {*}
|
|
*/
|
|
global.loadModule = ( moduleName, moduleType = 'controller') => {
|
|
const modulePath = `${root}/modules/${moduleName}/${moduleName}.${moduleType}.js`
|
|
if (!fs.existsSync(modulePath)) {
|
|
throw Error('로드하려는 모듈이 존재하지 않습니다')
|
|
}
|
|
const t =require(modulePath);
|
|
|
|
return t;
|
|
}
|
|
|
|
/**
|
|
* 데이타베이스 객체 불러오기
|
|
* @returns {*}
|
|
*/
|
|
global.database = () => {
|
|
return require(`${root}/core/database.js`)
|
|
}
|