app.js 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. const express = require("express");
  2. const compression = require("compression");
  3. const mongoose = require("mongoose");
  4. const https = require("https");
  5. const fs = require("fs");
  6. const app = express();
  7. mongoose.connect(`mongodb://127.0.0.1:27017/leemorgan`, {
  8. useNewUrlParser: true,
  9. useUnifiedTopology: true,
  10. useFindAndModify: false,
  11. useCreateIndex: true
  12. });
  13. let httpsServer = {};
  14. if(process.env.NODE_ENV === "production"){
  15. httpsServer = https.createServer({
  16. key: fs.readFileSync("/etc/letsencrypt/live/leemorgan.io/privkey.pem", "utf8"),
  17. cert: fs.readFileSync("/etc/letsencrypt/live/leemorgan.io/fullchain.pem", "utf8")
  18. }, app);
  19. app.use((req, res, next)=>{
  20. if(req.secure === true){
  21. next();
  22. }else{
  23. res.redirect(`https://${req.headers.host}${req.url}`);
  24. }
  25. });
  26. }
  27. app.use(compression());
  28. app.use(express.json());
  29. require("./routes.js")(app);
  30. if(process.env.NODE_ENV === "production") httpsServer.listen(process.env.HTTPS_PORT);
  31. app.listen(process.env.PORT);