app.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. const express = require("express");
  2. const session = require("cookie-session");
  3. const mongoose = require("mongoose");
  4. const compression = require("compression");
  5. const https = require("https");
  6. const fs = require("fs");
  7. const app = express();
  8. mongoose.connect(`${process.env.DB}/inventory-management`, {useNewUrlParser: true, useUnifiedTopology: true});
  9. app.set("view engine", "ejs");
  10. let httpsServer = {};
  11. if(process.env.NODE_ENV === "production"){
  12. httpsServer = https.createServer({
  13. key: fs.readFileSync("/etc/letencrypt/live/www.thesubline.com/privkey.pem", "utf8"),
  14. cert: fs.readFileSync("/etc/letsencrypt/live/www.leemorgan.io/fullchain.pem", "utf8")
  15. }, app);
  16. app.use((req, res, next)=>{
  17. if(req.secure === true){
  18. next();
  19. }else{
  20. res.redirect(`https://${req.headers.host}${req.url}`);
  21. }
  22. });
  23. }
  24. app.use(compression());
  25. app.use(session({
  26. secret: "Super Secret Subline Subliminally Saving Secrets So Sneaky Snakes Stay Sullen",
  27. cookie: {secure: true},
  28. saveUninitialized: true,
  29. resave: false
  30. }));
  31. app.use(express.static(__dirname + "/views"));
  32. app.use(express.urlencoded({extended: true}));
  33. app.use(express.json());
  34. require("./routes")(app);
  35. if(process.env.NODE_ENV === "production"){
  36. httpsServer.listen(process.env.HTTPS_PORT, ()=>{});
  37. }
  38. app.listen(process.env.PORT, ()=>{});