require("dotenv").config() let registrationOpen, branding; function loadEnv() { registrationOpen = process.env.REGISTRATION_OPEN === "true" branding = { title: process.env.BRANDING_TITLE || "SAR Link", logo: process.env.BRANDING_LOGO || "/public/logo.png", bankDetails: { name: process.env.BANK_NAME || "Bank Name", accountNumber: process.env.ACCOUNT_NUMBER || "1234567890", accountName: process.env.ACCOUNT_NAME || "Account Name", }, } } loadEnv() // watch for changes to .env file const path = require("path") const fs = require("fs") fs.watchFile(path.join(__dirname, ".env"), (curr, prev) => { delete require.cache[require.resolve("dotenv")] require("dotenv").config({ override: true }) loadEnv() console.log(`Registration is now ${registrationOpen ? "open" : "closed"}`) }) // initialize express const express = require("express") const app = express() app.set("view engine", "ejs") app.set("views", "./src/views") app.use("/public", express.static("./src/public")) app.use(express.json()) app.use(express.urlencoded({ extended: true })) // add multer const multer = require("multer") const upload = multer({ storage: multer.diskStorage({ destination: (req, file, cb) => { cb(null, "./uploads") }, filename: (req, file, cb) => { cb(null, `${Date.now()}-${file.originalname}`) } }) }) // app.use(upload.single("receipt")) // routes app.get("/", (req, res) => { res.render(registrationOpen ? "index" : "closed", { branding }) }); app.post("/register", upload.single("receipt"), (req, res) => { if (!registrationOpen) { res.render("closed") return } console.log(req.body) console.log(req.file) res.render("success", { branding }) }) const port = process.env.PORT || 4818; app.listen(port, '0.0.0.0', () => { console.log(`Server is running on port ${port}`); });