| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- const express = require("express");
- const compression = require("compression");
- const mongoose = require("mongoose");
- const https = require("https");
- const fs = require("fs");
- const bodyParser = require("body-parser");
- const fileUpload = require("express-fileupload");
- const app = express();
- let mongooseOptions = {
- useNewUrlParser: true,
- useUnifiedTopology: true,
- useFindAndModify: false,
- useCreateIndex: true
- };
- let httpsServer = {};
- if(process.env.NODE_ENV === "production"){
- httpsServer = https.createServer({
- key: fs.readFileSync("/etc/letsencrypt/live/leemorgan.io/privkey.pem", "utf8"),
- cert: fs.readFileSync("/etc/letsencrypt/live/leemorgan.io/fullchain.pem", "utf8")
- }, app);
- app.use((req, res, next)=>{
- if(req.secure === true){
- next();
- }else{
- res.redirect(`https://${req.headers.host}${req.url}`);
- }
- });
- mongooseOptions.auth = {authSource: "admin"};
- mongooseOptions.user = "website";
- mongooseOptions.pass = process.env.MONGODB_PASS;
- }
- mongoose.connect("mongodb://127.0.0.1/leemorgan", mongooseOptions);
- app.use(compression());
- app.use(express.json());
- app.use(bodyParser.urlencoded({extended: false}))
- app.use(fileUpload({limits: { fileSize: 1024 * 1024}}));
- require("./routes.js")(app);
- if(process.env.NODE_ENV === "production") httpsServer.listen(process.env.HTTPS_PORT);
- app.listen(process.env.PORT);
|