33 lines
1.1 KiB
JavaScript
33 lines
1.1 KiB
JavaScript
const fs = require("node:fs")
|
|
const path = require("node:path")
|
|
const logger = require("./modules/logger")
|
|
const config = require("./config.json")
|
|
const express = require("express")
|
|
const dbController = require("./controllers/db")
|
|
const app = express()
|
|
|
|
app.use(express.json())
|
|
app.use(express.urlencoded({ extended: true }))
|
|
app.set("view engine", "ejs")
|
|
app.set("views", path.join(__dirname, "static", "views"))
|
|
|
|
dbController.initDB()
|
|
|
|
const routes = fs.readdirSync(path.join(__dirname, "routes"), { recursive: true })
|
|
|
|
for (let route of routes) {
|
|
if (route.endsWith(".js")) {
|
|
if (route.endsWith("index.js")) {
|
|
route = "/" + route.replace("index.js", "/").replace(/\\/g, "/").replace(/\/\//g, "")
|
|
} else {
|
|
route = "/" + route.replace(".js", "").replace(/\\/g, "/")
|
|
}
|
|
const routeHandler = require(`./routes/${route}`)
|
|
app.use(route, routeHandler)
|
|
logger.log(`Route ${route.cyan.bold} registered`)
|
|
}
|
|
}
|
|
|
|
app.listen(config.web.port, () => {
|
|
logger.log(`Server listening at port : ${config.web.port}`)
|
|
}) |