app.js 2.58 KiB
// app.js
require('dotenv').config();
const express = require('express');
const session = require('express-session');
const passport = require('./passport');
const flash = require('connect-flash');
const { initScheduleCleaner } = require('./utils/scheduler');
const connectMongoDB = require('./config/mongoose'); // MongoDB 연결
const { sequelize } = require('./config/sequelize'); // Sequelize 연결
const cors = require('cors');
const morgan = require('morgan');
const syncRdb = require('./sync'); // Import the syncDatabase function
const app = express();
app.use(morgan('dev')); //로깅용
// CORS 설정 (로컬 환경용)
app.use(
cors({
origin: process.env.FRONT_URL,
methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'],
allowedHeaders: ['Content-Type', 'Authorization'],
credentials: true,
})
);
// 세션 설정 (로컬 테스트용)
app.use(
session({
secret: 'your-secret-key',
resave: false,
saveUninitialized: false,
rolling: true,
cookie: {
httpOnly: true,
secure: false, // HTTPS가 아닌 환경에서는 false로 설정
maxAge: 60 * 60 * 1000,
sameSite: 'lax',
},
})
);
// 미들웨어 설정
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
// Passport 초기화 및 세션 연결
app.use(passport.initialize());
app.use(passport.session());
app.use(flash());
//app.set('trust proxy', 1);
console.log('MongoDB URI:', process.env.MONGO_URI);
//라우터 등록
const authRoutes = require('./routes/authRoute');
app.use('/api/auth', authRoutes);
const scheduleRoutes = require('./routes/scheduleRoute');
app.use('/api/schedule', scheduleRoutes);
const friendRoutes = require('./routes/friendRoute');
app.use('/api/friend', friendRoutes);
const meetingRoutes = require('./routes/meetingRoute');