mailbox/backend/index.js

52 lines
1.2 KiB
JavaScript
Raw Permalink Normal View History

2025-12-16 08:18:15 +09:00
/**
* 이메일 백엔드 서버 진입점
* Express HTTP 서버 + SMTP 서버 시작
*/
const express = require("express");
const cors = require("cors");
const dotenv = require("dotenv");
// 환경 변수 로드
dotenv.config();
const app = express();
const port = process.env.PORT || 3000;
// 미들웨어 설정
app.use(cors());
app.use(express.json({ limit: "50mb" })); // Base64 인코딩된 첨부파일 40MB 지원
// 헬스 체크 엔드포인트
app.get("/", (req, res) => {
res.send("Email Client Backend is running");
});
// 라우터 등록
const authRoutes = require("./routes/auth");
const mailRoutes = require("./routes/mail");
const adminRoutes = require("./routes/admin");
app.use("/api", authRoutes);
app.use("/api/admin", adminRoutes);
app.use("/api", mailRoutes);
// 서비스 및 유틸리티
const { startSMTPServer } = require("./services/smtpService");
const initializeDatabase = require("./utils/dbInit");
/**
* 서버 시작
* 1. SMTP 서버 시작 (포트 25)
* 2. 데이터베이스 초기화
* 3. HTTP 서버 시작
*/
const startServer = async () => {
startSMTPServer();
await initializeDatabase();
app.listen(port, () => {
console.log(`[서버] HTTP 서버 시작: http://localhost:${port}`);
});
};
startServer();