feat: serving static front build from api

This commit is contained in:
Florian Sylvain
2024-10-09 00:09:23 +02:00
parent db35aa1f03
commit f41cead701
2 changed files with 32 additions and 14 deletions
+16 -14
View File
@@ -9,6 +9,7 @@ import swaggerSpec from "./assets/swaggerSpec.js"
import { getJwtSecret } from "./utils/jwt.js" import { getJwtSecret } from "./utils/jwt.js"
import frontRouter from "./routers/front.js"
import userRouter from "./routers/user.js" import userRouter from "./routers/user.js"
import sessionRouter from "./routers/session.js" import sessionRouter from "./routers/session.js"
import categoryRouter from "./routers/category.js" import categoryRouter from "./routers/category.js"
@@ -52,25 +53,26 @@ function initEnvVariables(): void {
export function initServer(): express.Express { export function initServer(): express.Express {
initEnvVariables() initEnvVariables()
const app = express() const api = express()
const appRouter = express.Router() const apiRouter = express.Router()
app.use(cors({ origin: process.env.FRONT_ORIGIN, credentials: true })) api.use(cors({ origin: process.env.FRONT_ORIGIN, credentials: true }))
app.use(cookieParser()) api.use(cookieParser())
app.use(express.json()) api.use(express.json())
app.use(express.urlencoded({ extended: false })) api.use(express.urlencoded({ extended: false }))
appRouter.get("/", appRouterGet) apiRouter.get("/", appRouterGet)
appRouter.use("/session/", sessionRouter) apiRouter.use("/session/", sessionRouter)
appRouter.use("/user/", authMiddleware, userRouter) apiRouter.use("/user/", authMiddleware, userRouter)
appRouter.use("/category/", authMiddleware, categoryRouter) apiRouter.use("/category/", authMiddleware, categoryRouter)
appRouter.use("/snippet/", authMiddleware, snippetRouter) apiRouter.use("/snippet/", authMiddleware, snippetRouter)
app.use("/v1/", appRouter) api.use("/", frontRouter)
app.use("/doc", swaggerUi.serve, swaggerUi.setup(swaggerSpec)) api.use("/v1/", apiRouter)
api.use("/doc", swaggerUi.serve, swaggerUi.setup(swaggerSpec))
return app return api
} }
export function startServer(app: express.Express): void { export function startServer(app: express.Express): void {
+16
View File
@@ -0,0 +1,16 @@
import express, { RequestHandler } from "express"
const frontRouter = express.Router()
const getAll: RequestHandler = async (req, res) => {
try {
res.sendFile("snippets-manager-front/dist/index.html")
} catch (error) {
res.status(500).send("Internal Server Error")
}
}
frontRouter.use(express.static("snippets-manager-front/dist"))
frontRouter.get("/*", getAll)
export default frontRouter