82 lines
2.1 KiB
JavaScript
82 lines
2.1 KiB
JavaScript
const env = require("./env");
|
|
|
|
// import asyncHandler from "express-async-handler";
|
|
// import passport from "passport";
|
|
const cookieParser = require("cookie-parser");
|
|
const express = require("express");
|
|
const helmet = require("helmet");
|
|
const morgan = require("morgan");
|
|
const path = require("path");
|
|
const hbs = require("hbs");
|
|
|
|
const helpers = require("./handlers/helpers");
|
|
// import * as links from "./handlers/links";
|
|
// import * as auth from "./handlers/auth";
|
|
const routes = require("./routes");
|
|
const renders = require("./renders");
|
|
const utils = require("./utils");
|
|
const { stream } = require("./config/winston")
|
|
|
|
// import "./cron";
|
|
require("./passport");
|
|
|
|
const app = express();
|
|
|
|
// TODO: comments
|
|
app.set("trust proxy", true);
|
|
|
|
if (env.isDev) {
|
|
app.use(morgan("combined", { stream }));
|
|
}
|
|
|
|
app.use(helmet({ contentSecurityPolicy: false }));
|
|
app.use(cookieParser());
|
|
app.use(express.json());
|
|
app.use(express.urlencoded({ extended: true }));
|
|
app.use(express.static("static"));
|
|
|
|
// app.use(passport.initialize());
|
|
// app.use(helpers.ip);
|
|
|
|
// template engine / serve html
|
|
app.set("view engine", "hbs");
|
|
app.set("views", path.join(__dirname, "views"));
|
|
utils.extendHbs();
|
|
|
|
app.use("/", renders);
|
|
|
|
// app.use(asyncHandler(links.redirectCustomDomain));
|
|
|
|
app.use("/api/v2", routes);
|
|
app.use("/api", routes);
|
|
|
|
// server.get(
|
|
// "/reset-password/:resetPasswordToken?",
|
|
// asyncHandler(auth.resetPassword),
|
|
// (req, res) => app.render(req, res, "/reset-password", { token: req.token })
|
|
// );
|
|
|
|
// server.get(
|
|
// "/verify-email/:changeEmailToken",
|
|
// asyncHandler(auth.changeEmail),
|
|
// (req, res) => app.render(req, res, "/verify-email", { token: req.token })
|
|
// );
|
|
|
|
// server.get(
|
|
// "/verify/:verificationToken?",
|
|
// asyncHandler(auth.verify),
|
|
// (req, res) => app.render(req, res, "/verify", { token: req.token })
|
|
// );
|
|
|
|
// server.get("/:id", asyncHandler(links.redirect(app)));
|
|
|
|
// Error handler
|
|
app.use(helpers.error);
|
|
|
|
// Handler everything else by Next.js
|
|
// server.get("*", (req, res) => handle(req, res));
|
|
|
|
app.listen(env.PORT, () => {
|
|
console.log(`> Ready on http://localhost:${env.PORT}`);
|
|
});
|