Skip to content

Instantly share code, notes, and snippets.

@Omar-Handouk
Created August 20, 2019 04:45
Show Gist options
  • Save Omar-Handouk/b11ba37b8548c9f1db820981c2b1fa11 to your computer and use it in GitHub Desktop.
Save Omar-Handouk/b11ba37b8548c9f1db820981c2b1fa11 to your computer and use it in GitHub Desktop.
'use strict';
let helmet = require('helmet');
let cors = require('cors');
let createError = require('http-errors');
let logger = require('morgan');
let express = require('express');
// Environment Config
require('dotenv').config();
// Environment Variables
let node_env = process.env.NODE_ENV;
let port = process.env.PORT || 3000;
let logger_format = node_env === 'dev' ? 'dev' : 'common';
// Application Config
let app = express();
app.set('port', port);
app.set('env', node_env);
// Routes Imports
// Middleware Config
app.use(logger(logger_format));
app.use(helmet());
app.use(cors());
app.use(express.json());
app.use(express.urlencoded({extended: false}));
// Routing Config
// Catch 404 and forward to error handler
app.use((_req, _res, next) => {
next(new createError.NotFound());
});
// error handler
app.use(function(err, req, res, _next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'dev' ? err : {};
// render the error page
res.status(err.status || 500);
res.json(err);
});
app.listen(port, () => {
console.log(`===> Server is listening to port ${port} <===`);
});
module.exports = app;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment