forked from PolarisPyra/artemisapi
74 lines
1.9 KiB
JavaScript
Executable File
74 lines
1.9 KiB
JavaScript
Executable File
const express = require("express");
|
|
const cors = require("cors");
|
|
const helmet = require("helmet");
|
|
const expressSession = require("express-session");
|
|
const MySQLStore = require("express-mysql-session")(expressSession);
|
|
|
|
const app = express();
|
|
const nodeEnv = process.env.NODE_ENV;
|
|
|
|
if (!nodeEnv) {
|
|
console.error("No NODE_ENV specified in environment. Terminating.");
|
|
process.exit(1);
|
|
}
|
|
|
|
// Let NGINX do its magic.
|
|
app.set("trust proxy", "loopback");
|
|
app.set("query parser", "simple");
|
|
|
|
const store = new MySQLStore({
|
|
host: process.env.host,
|
|
user: process.env.user,
|
|
password: process.env.password,
|
|
database: process.env.database,
|
|
port: process.env.port,
|
|
schema: {
|
|
tableName: "cozynet_artemisapi_sessions",
|
|
columnNames: {
|
|
session_id: "session_id",
|
|
expires: "expires",
|
|
data: "data",
|
|
},
|
|
},
|
|
});
|
|
const userSessionMiddleware = expressSession({
|
|
name: "ArtemisAPI_SESSION",
|
|
secret: process.env.JWT_SECRET,
|
|
store,
|
|
resave: true,
|
|
saveUninitialized: false,
|
|
cookie: {
|
|
secure: nodeEnv === "production",
|
|
sameSite: nodeEnv === "production" ? "strict" : "none",
|
|
},
|
|
});
|
|
|
|
if (nodeEnv !== "production" && process.env.CLIENT_DEV_SERVER && process.env.CLIENT_DEV_SERVER.length > 0) {
|
|
const clientDevServer = process.env.CLIENT_DEV_SERVER;
|
|
|
|
app.use(cors({ credentials: true, origin: clientDevServer }));
|
|
} else {
|
|
app.use(cors({ credentials: false, origin: "*" }));
|
|
app.use((req, res, next) => {
|
|
res.header("Access-Control-Allow-Credentials", "false");
|
|
next();
|
|
});
|
|
app.use(helmet());
|
|
}
|
|
|
|
app.use(userSessionMiddleware);
|
|
|
|
const sunGetRoutes = require("./chunithm/13/getRoutes");
|
|
const sunPostRoutes = require("./chunithm/13/postRoutes");
|
|
|
|
app.use(express.json());
|
|
// app.use(cors({ credentials: true, origin: "*" }));
|
|
app.use("/SDHD", sunGetRoutes);
|
|
app.use("/SDHD", sunPostRoutes);
|
|
|
|
// Starting the server
|
|
const PORT = 4000;
|
|
app.listen(PORT, () => {
|
|
console.log(`Server is running on http://localhost:${PORT}`);
|
|
});
|