53 lines
1.7 KiB
JavaScript
53 lines
1.7 KiB
JavaScript
"use strict";
|
|
const express = require("express");
|
|
const app = express();
|
|
const path = require("path");
|
|
const publicPath = path.join(__dirname, "..", "..", "public");
|
|
const userRouter = require("../express-routers/user");
|
|
const fileRouter = require("../express-routers/file");
|
|
const folderRouter = require("../express-routers/folder");
|
|
const storageRouter = require("../express-routers/storage");
|
|
const bodyParser = require('body-parser');
|
|
const https = require("https");
|
|
const fs = require("fs");
|
|
const helmet = require("helmet");
|
|
const busboy = require("connect-busboy");
|
|
const compression = require("compression");
|
|
const http = require("http");
|
|
let server;
|
|
let serverHttps;
|
|
if (process.env.NODE_ENV === 'production') {
|
|
const cert = fs.readFileSync("certificate.crt");
|
|
const ca = fs.readFileSync("certificate.ca-bundle");
|
|
const key = fs.readFileSync("certificate.key");
|
|
const options = {
|
|
cert,
|
|
ca,
|
|
key
|
|
};
|
|
serverHttps = https.createServer(options, app);
|
|
}
|
|
server = http.createServer(app);
|
|
require("../db/mongoose");
|
|
app.use(helmet());
|
|
app.use(compression());
|
|
app.use(express.json());
|
|
app.use(express.static(publicPath));
|
|
app.use(bodyParser.json({ limit: "50mb" }));
|
|
app.use(bodyParser.urlencoded({ limit: "50mb", extended: true, parameterLimit: 50000 }));
|
|
app.use(busboy({
|
|
highWaterMark: 2 * 1024 * 1024,
|
|
}));
|
|
app.use(userRouter, fileRouter, folderRouter, storageRouter);
|
|
const nodeMode = process.env.NODE_ENV ? "Production" : "Development/Testing";
|
|
console.log("Node Enviroment Mode:", nodeMode);
|
|
app.get("*", (req, res) => {
|
|
res.sendFile(path.join(publicPath, "index.html"));
|
|
});
|
|
if (process.env.NODE_ENV === 'production') {
|
|
module.exports = { server, serverHttps };
|
|
}
|
|
else {
|
|
module.exports = server;
|
|
}
|