94 lines
2.2 KiB
JavaScript
94 lines
2.2 KiB
JavaScript
import "dotenv/config";
|
|
|
|
import express from "express";
|
|
import path from "path";
|
|
import logger from "morgan";
|
|
import cookieParser from "cookie-parser";
|
|
import bodyParser from "body-parser";
|
|
import helmet from "helmet";
|
|
import compression from "compression";
|
|
import fileUpload from "express-fileupload";
|
|
import routes from "./routes/index";
|
|
import {PORT,HOST} from "./config/constants";
|
|
import { accessTokenMiddleWare } from "./utils/helpers";
|
|
|
|
var app = express();
|
|
|
|
app.use(compression()); //Compress all routes
|
|
app.use(helmet());
|
|
app.use(fileUpload());
|
|
|
|
// view engine setup
|
|
app.set("views", path.join(__dirname, "views"));
|
|
app.set("view engine", "jade");
|
|
|
|
app.set("port", process.env.PORT || PORT);
|
|
|
|
app.use(
|
|
logger("dev", {
|
|
skip: function (req) {
|
|
if (req.url == "/ping") {
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
})
|
|
);
|
|
|
|
app.use(accessTokenMiddleWare)
|
|
app.use(bodyParser.json());
|
|
app.use(bodyParser.urlencoded({extended: false}));
|
|
app.use(cookieParser());
|
|
app.use(express.static(path.join(__dirname, "dist")));
|
|
|
|
// Enable CORS
|
|
app.use(function (req, res, next) {
|
|
res.header("Access-Control-Allow-Origin", "*");
|
|
res.header("Access-Control-Allow-Methods", "GET, POST, OPTIONS, PUT, DELETE");
|
|
res.header(
|
|
"Access-Control-Allow-Headers",
|
|
"Origin, X-Requested-With, Content-Type, Accept"
|
|
);
|
|
next();
|
|
});
|
|
|
|
app.use("/", routes);
|
|
|
|
// catch 404 and forward to error handler
|
|
app.use(function (req, res, next) {
|
|
var err = new Error("Not Found");
|
|
err.status = 404;
|
|
next(err);
|
|
});
|
|
|
|
// error handlers
|
|
|
|
// development error handler
|
|
// will print stacktrace
|
|
if (app.get("env") === "development") {
|
|
app.use(function (err, req, res) {
|
|
res.status(err.status || 500);
|
|
res.render("error", {
|
|
message: err.message,
|
|
error: err
|
|
});
|
|
});
|
|
}
|
|
|
|
// production error handler
|
|
// no stacktraces leaked to user
|
|
app.use(function (err, req, res) {
|
|
res.status(err.status || 500);
|
|
res.render("error", {
|
|
message: err.message,
|
|
error: {}
|
|
});
|
|
});
|
|
|
|
app.listen(process.env.PORT || PORT,process.env.HOST || HOST, () =>
|
|
console.log(`App listening on http://${process.env.HOST || HOST}:${process.env.PORT || PORT}`)
|
|
);
|
|
|
|
export default app;
|