_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 }