✨ 주요 변경사항: - 프로젝트 이름: kumamoto-travel-planner → travel-planner - 버전 업그레이드: v1.0.0 → v2.0.0 - 멀티유저 시스템 구현 (JWT 인증) - PostgreSQL 마이그레이션 시스템 추가 - Docker 컨테이너 이름 변경 - UI 브랜딩 업데이트 (Travel Planner) - API 서버 및 인증 시스템 추가 - 여행 공유 기능 구현 - 템플릿 시스템 추가 🔧 기술 스택: - Frontend: React + TypeScript + Vite - Backend: Node.js + Express + JWT - Database: PostgreSQL + 마이그레이션 - Infrastructure: Docker + Docker Compose 🌟 새로운 기능: - 사용자 인증 및 권한 관리 - 다중 여행 계획 관리 - 여행 템플릿 시스템 - 공유 링크 및 댓글 시스템 - 관리자 대시보드
67 lines
1.9 KiB
JavaScript
67 lines
1.9 KiB
JavaScript
const express = require('express');
|
|
const cors = require('cors');
|
|
const path = require('path');
|
|
const { initializeDatabase } = require('./db');
|
|
const { runMigrations } = require('./migrate');
|
|
const travelPlanRoutes = require('./routes/travelPlans');
|
|
const basePointsRoutes = require('./routes/basePoints');
|
|
const uploadsRoutes = require('./routes/uploads');
|
|
const { router: authRoutes } = require('./routes/auth');
|
|
const setupRoutes = require('./routes/setup');
|
|
|
|
const app = express();
|
|
const PORT = process.env.PORT || 3000;
|
|
|
|
// 미들웨어
|
|
app.use(cors());
|
|
app.use(express.json());
|
|
|
|
// 정적 파일 제공 (업로드된 이미지)
|
|
app.use('/uploads', express.static(path.join(__dirname, 'uploads')));
|
|
|
|
// 로그 미들웨어
|
|
app.use((req, res, next) => {
|
|
console.log(`${req.method} ${req.path}`);
|
|
next();
|
|
});
|
|
|
|
// 라우트
|
|
app.use('/api/auth', authRoutes);
|
|
app.use('/api/setup', setupRoutes);
|
|
app.use('/api/travel-plans', travelPlanRoutes);
|
|
app.use('/api/base-points', basePointsRoutes);
|
|
app.use('/api/uploads', uploadsRoutes);
|
|
|
|
// 헬스 체크
|
|
app.get('/health', (req, res) => {
|
|
res.json({ status: 'ok', timestamp: new Date().toISOString() });
|
|
});
|
|
|
|
// 에러 핸들러
|
|
app.use((err, req, res, next) => {
|
|
console.error('Error:', err);
|
|
res.status(500).json({ error: err.message });
|
|
});
|
|
|
|
// 서버 시작
|
|
async function startServer() {
|
|
try {
|
|
// 데이터베이스 초기화 (기존 스키마)
|
|
await initializeDatabase();
|
|
|
|
// 마이그레이션 실행 (새로운 기능 추가)
|
|
await runMigrations();
|
|
|
|
app.listen(PORT, '0.0.0.0', () => {
|
|
console.log(`🚀 Server running on port ${PORT}`);
|
|
console.log(`📊 API available at http://localhost:${PORT}`);
|
|
console.log(`🗄️ Database: Using existing kumamoto_map database`);
|
|
});
|
|
} catch (error) {
|
|
console.error('Failed to start server:', error);
|
|
process.exit(1);
|
|
}
|
|
}
|
|
|
|
startServer();
|