spm/app.js

95 lines
3.2 KiB
JavaScript

_program_init();
const express = require('express');
const app = express();
const ip = "0.0.0.0";
const port = process.env.SERVER_PORT;
const cookieParser = require('cookie-parser');
app.use(express.json()); // json 요청 처리
app.use(cookieParser());
//#region root path
/*
4xx: 클라이언트 오류
400 Bad Request: 잘못된 요청으로 서버가 요청을 처리할 수 없음을 나타냅니다.
401 Unauthorized: 인증이 필요한 리소스에 인증되지 않은 접근을 시도했음을 나타냅니다.
403 Forbidden: 요청이 서버에서 거부되었으며, 클라이언트에 권한이 없음을 의미합니다.
404 Not Found: 요청한 리소스를 찾을 수 없음을 나타냅니다.
405 Method Not Allowed: HTTP 메서드가 허용되지 않은 경우 사용됩니다.
*/
/*
5xx: 서버 오류
500 Internal Server Error: 서버에서 요청을 처리하는 중에 문제가 발생했음을 나타냅니다.
502 Bad Gateway: 서버가 잘못된 응답을 수신했을 때 사용됩니다.
503 Service Unavailable: 서버가 일시적으로 과부하 상태이거나 유지 보수 중일 때 사용됩니다.
504 Gateway Timeout: 서버가 게이트웨이 또는 프록시로서 응답 시간을 초과했음을 나타냅니다.
*/
app.use((req, res, next) => {
console.log(`[REQ - ${req.method}] url : ${req.url}`)
next();
})
app.get('/', (req, res) => {
res.sendFile(__dirname + '/index.html')
})
//#endregion
//#region auth path
const authRoutes = require('./src/routes/authRoutes');
app.use('/auth', authRoutes.ar);
//#endregion
app.listen(port, ip, (error) => {
global.clog.info(`서버가 'http://${ip}:${port}' 에서 실행 중입니다.`);
})
function _program_init() {
let gtp = require('./src/utils/Global_TP');
global._GTP = new gtp();
global.clog = require('./src/utils/consoleLogger').log
global.clog.info("program!!");
global.crouter = require('./src/utils/routeHelper').ROUTER;
const UAC = require('./src/models/userAuthController');
const PGSQL = require('./src/models/postgre_SQL');
global._SPM = {
uac: new UAC(),
db: {
pgSql: new PGSQL()
}
}
const dotenv = require('dotenv');
dotenv.config();
const envr = process.env.NODE_ENV || 'dev';
dotenv.config({ path: `.env.${envr}` });
//#region 개발 모드 or 프로덕션 모드
global.clog.info(`[${process.env.NODE_ENV} Mode] ---------------------------`)
//#endregion
//#region user config set
global._SPM.uac.Set_Config({
secret_key: process.env.JWT_SECRET,
cookie_name: process.env.JWT_COOKIE_NAME,
exp_time_minute: process.env.AUTH_EXP_TIME_MINUTE,
session_max_per_user: process.env.AUTH_MAX_SESSION_PER_USER
})
global._SPM.db.pgSql.Set_Config({
HOST: process.env.DB_HOST,
ID: process.env.DB_ID,
PW: process.env.DB_PW,
PORT: process.env.DB_PORT,
DATABASE: process.env.DB_DATABASE,
CONNECT_TIMEOUT: process.env.DB_CONNECT_TIMEOUT,
RECONNECT_MAX_COUNT: process.env.DB_RECONNECT_MAX_COUNT
})
//#endregion
//#region postgresql connect
global._SPM.db.pgSql.Connect(function() {
// connected after
});
//#endregion
}