From 1cf47570f5acef7d7485ee0b897dfd45e71970bc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=EC=8B=AC=EC=9E=AC=EC=97=BD?= <jysim0326@ajou.ac.kr>
Date: Tue, 19 Nov 2024 18:21:36 +0900
Subject: [PATCH] =?UTF-8?q?refactor:=20CORS=20=EC=84=A4=EC=A0=95,=20MongoD?=
 =?UTF-8?q?B=20=EC=97=B0=EA=B2=B0=20=ED=9B=84=20=EC=84=9C=EB=B2=84=20?=
 =?UTF-8?q?=EC=8B=9C=EC=9E=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 app.js             | 51 +++++++++++++++++++++++++++++++++++-----------
 config/mongoose.js | 26 +++++++++++------------
 2 files changed, 52 insertions(+), 25 deletions(-)

diff --git a/app.js b/app.js
index dcc56c0..f343703 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 3379779..692a4aa 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
-- 
GitLab