diff --git a/app.js b/app.js index dcc56c03adc0476f9a365a184f6c16e66829a4d7..f343703673275bd6a1a1e53a27d3055cdd2326e9 100644 --- a/app.js +++ b/app.js @@ -1,4 +1,3 @@ - // app.js require('dotenv').config(); @@ -7,10 +6,23 @@ const express = require('express'); const session = require('express-session'); const passport = require('./passport'); // 변경된 경로 const flash = require('connect-flash'); -const { initScheduleCleaner } = require('./utils/scheduler'); // 유동 스케줄 자동 삭제 유틸 +const { initScheduleCleaner } = require('./utils/scheduler'); +const connectMongoDB = require('./config/mongoose'); // MongoDB 연결 +const { sequelize } = require('./config/sequelize'); // Sequelize 연결 +const cors = require('cors'); const app = express(); +// CORS 설정 +app.use( + cors({ + origin: 'http://localhost:3000', // 허용할 도메인 설정 (예: 프론트엔드 주소) + methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'], + allowedHeaders: ['Content-Type', 'Authorization'], + credentials: true, // 쿠키와 인증 정보를 허용하려면 true로 설정 + }) +); + // 미들웨어 설정 app.use(express.json()); @@ -35,28 +47,43 @@ app.use(flash()); /** * 라우터 등록 */ -// 로그인 라우터 const authRoutes = require('./routes/auth'); app.use('/auth', authRoutes); -// Schedule 라우터 const scheduleRoutes = require('./routes/schedule'); app.use('/api/schedule', scheduleRoutes); -// Friend 라우터 const friendRoutes = require('./routes/friend'); app.use('/api/friend', friendRoutes); +const meetingRoutes = require('./routes/meetingRoute'); +app.use('/api/meeting', meetingRoutes); +const chatRoutes = require('./routes/chatRoute'); +app.use('/api/chat', chatRoutes); +// 스케줄 클리너 초기화 initScheduleCleaner(); const PORT = process.env.PORT || 3000; -app.get('/', (req, res) => { - res.send('Hello, World!'); -}); - -app.listen(PORT, () => { - console.log(`Server is running on http://localhost:${PORT}`); -}); +// MongoDB 및 MySQL 연결 후 서버 시작 +(async () => { + try { + // MongoDB 연결 + await connectMongoDB(); + console.log('✅ MongoDB 연결 성공'); + + // MySQL 연결 확인 + await sequelize.authenticate(); + console.log('✅ MySQL 연결 성공'); + + // 서버 시작 + app.listen(PORT, () => { + console.log(`Server is running on http://localhost:${PORT}`); + }); + } catch (error) { + console.error('❌ 서버 시작 중 오류 발생:', error); + process.exit(1); + } +})(); \ No newline at end of file diff --git a/config/mongoose.js b/config/mongoose.js index 3379779bf664ebd969317df7f7de48e7a74b34be..692a4aa2a9d31e14916b06892469db5e81ad980e 100644 --- a/config/mongoose.js +++ b/config/mongoose.js @@ -2,17 +2,17 @@ const mongoose = require('mongoose'); -mongoose.connect(process.env.MONGO_URI, { - useNewUrlParser: true, - useUnifiedTopology: true, -}); +const connectMongoDB = async () => { + try { + await mongoose.connect(process.env.MONGODB_URI, { + useNewUrlParser: true, + useUnifiedTopology: true, + }); + console.log('✅ MongoDB 연결 성공'); + } catch (error) { + console.error('❌ MongoDB 연결 실패:', error); + throw error; + } +}; -mongoose.connection.on('connected', () => { - console.log('Mongoose connected.'); -}); - -mongoose.connection.on('error', (err) => { - console.error('Mongoose connection error:', err); -}); - -module.exports = mongoose; +module.exports = connectMongoDB; \ No newline at end of file