운영 이관 준비
This commit is contained in:
+41
-4
@@ -51,11 +51,39 @@ app.set('io', io);
|
||||
|
||||
// app.js 또는 서버 초기화 파일
|
||||
const session = require('express-session');
|
||||
const MySQLStore = require('express-mysql-session')(session);
|
||||
|
||||
// MySQL 세션 저장소 옵션 설정
|
||||
const options = {
|
||||
host: process.env.DB_HOST || 'localhost',
|
||||
port: process.env.DB_PORT || 3306,
|
||||
user: process.env.DB_USER || 'root',
|
||||
password: process.env.DB_PASSWORD || '',
|
||||
database: process.env.DB_NAME || 'bowlingmanager',
|
||||
// 세션 테이블 설정
|
||||
schema: {
|
||||
tableName: 'sessions',
|
||||
columnNames: {
|
||||
session_id: 'session_id',
|
||||
expires: 'expires',
|
||||
data: 'data'
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// MySQL 세션 저장소 생성
|
||||
const sessionStore = new MySQLStore(options);
|
||||
|
||||
app.use(session({
|
||||
key: 'bowling_session',
|
||||
secret: process.env.JWT_SECRET,
|
||||
store: sessionStore,
|
||||
resave: false,
|
||||
saveUninitialized: false,
|
||||
cookie: { secure: process.env.NODE_ENV === 'production' } // https 환경이면 true, 개발환경은 false
|
||||
cookie: {
|
||||
secure: process.env.NODE_ENV === 'production',
|
||||
maxAge: 24 * 60 * 60 * 1000 // 1일
|
||||
}
|
||||
}));
|
||||
|
||||
// 데이터베이스 연결 및 모델 동기화 실행
|
||||
@@ -83,9 +111,18 @@ app.use('/api/users', userRoutes);
|
||||
app.use('/api/notifications', notificationRoutes);
|
||||
app.use('/api/menus', menuRoutes);
|
||||
|
||||
// 루트 경로 핸들러
|
||||
app.get('/', (req, res) => {
|
||||
res.json({ message: '볼링 클럽 매니저 API 서버에 오신 것을 환영합니다!' });
|
||||
// 정적 파일 제공 설정
|
||||
const path = require('path');
|
||||
app.use(express.static(path.join(__dirname, '../frontend/dist')));
|
||||
|
||||
// API 요청이 아닌 모든 요청은 Vue 앱으로 라우팅
|
||||
app.get('*', (req, res, next) => {
|
||||
// API 요청은 무시하고 다음 미들웨어로 전달
|
||||
if (req.path.startsWith('/api/')) {
|
||||
return next();
|
||||
}
|
||||
// Vue 앱의 index.html 반환
|
||||
res.sendFile(path.join(__dirname, '../frontend/dist/index.html'));
|
||||
});
|
||||
|
||||
// 서버 시작
|
||||
|
||||
Reference in New Issue
Block a user