-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathapp.js
More file actions
80 lines (72 loc) · 2.44 KB
/
app.js
File metadata and controls
80 lines (72 loc) · 2.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
require("dotenv").config()
const appInsights = require("applicationinsights")
const connectString = process.env.AZURE
if (connectString) {
appInsights.setup(connectString).start()
}
const { Logger, stream } = require("./logging")
const express = require("express")
const app = express()
const session = require("express-session")
const cookieParser = require("cookie-parser")
const cors = require("cors")
const helmet = require("helmet")
const AWSXray = require("aws-xray-sdk")
const morgan = require("morgan")
const moment = require("moment-timezone")
morgan.token("date", () => {
return moment().tz("Asia/Seoul").format("YYYY-MM-DD HH:mm:ss.SSS")
})
const connect = require("./schemas")
connect()
const passport = require("passport")
const passportConfig = require("./kakao/index")
const updateYouthApi = require("./openAPI/youthAPI/index")
const updateFirstBokjiApi = require("./openAPI/centralAPI/index")
const { dDayMail } = require("./API/mark/services/mark.service")
const swaggerUi = require("swagger-ui-express")
const swaggerFile = require("./swagger-output")
app.use("/swagger", swaggerUi.serve, swaggerUi.setup(swaggerFile))
const corsOptions = {
origin: ["http://localhost:3000", "https://boksei.com"],
credentials: true,
}
app.use(cors(corsOptions))
app.use(morgan(':remote-addr - :remote-user ":method :url HTTP/:http-version" :status :res[content-length] :response-time ms ', { stream }))
app.use(helmet())
app.use(express.static("public", express.static(__dirname + "/public")))
app.use(express.json())
app.use(express.urlencoded({ extended: false }))
app.use(cookieParser())
app.use(
session({
resave: false,
saveUninitialized: true,
secret: process.env.SESSION_SECRET,
cookie: {
sameSite: "strict",
httpOnly: true,
secure: true,
},
})
)
app.use(AWSXray.express.openSegment("MyApp"))
passportConfig()
app.use(passport.initialize())
app.use(passport.session())
if (process.env.SCHEDULE) {
updateYouthApi()
updateFirstBokjiApi()
dDayMail()
}
const Router = require("./routes")
app.use("/api", Router)
app.use(AWSXray.express.closeSegment())
app.use((req, res, next) => {
res.status(404).send("요청하신 페이지를 찾을 수 없습니다.")
})
app.use((err, req, res, next) => {
Logger.error(`${err.message} \n ${err.stack ? err.stack : ""} `)
res.status(err.status || 400).json({ result: "FAIL", message: err.message })
})
module.exports = app