-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
78 lines (64 loc) · 2.18 KB
/
app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
var createError = require( "http-errors" );
var express = require( "express" );
var path = require( "path" );
var cookieParser = require( "cookie-parser" );
var logger = require( "morgan" );
const config = require( "./config" );
const passport = require( "passport" );
const mongoose = require( "mongoose" );
const helmet = require( "helmet" );
// MongoDB connection
mongoose.connect( config.DBUrl, { useNewUrlParser: true , useUnifiedTopology: true, useCreateIndex:true } )
.then( console.log( "Connected to the DB server Successfully!" ) )
.catch( ( err ) => console.log( err ) );
//
// Routers
var indexRouter = require( "./routes/index" );
const projectRouter = require( "./routes/projectRouter" );
const roleRouter = require( "./routes/roleRouter" );
const userRouter = require( "./routes/userRouter" );
const uploadRouter = require( "./routes/uploadRouter" );
var app = express();
app.use( helmet() );
// allow only https requests
app.all( "*", ( req, res, next ) => {
if ( req.secure ) {
return next();
}
else {
res.redirect( 307, "https://" + req.hostname + ":" + app.get( "secPort" ) + req.url );
}
} );
// view engine setup
app.set( "views", path.join( __dirname, "views" ) );
app.set( "view engine", "ejs" );
// express app configurations
app.use( logger( "dev" ) );
app.use( express.json() );
app.use( express.urlencoded( { extended: false } ) );
app.use( cookieParser() );
app.use( express.static( path.join( __dirname, "public" ) ) );
// passport initilaize
app.use( passport.initialize() );
app.use( passport.session() );
// Routes
app.use( "/", indexRouter );
app.use( "/users", userRouter );
app.use( "/projects", projectRouter );
app.use( "/roles", roleRouter );
app.use( "/uploads", uploadRouter );
// catch 404 and forward to error handler
app.use( function( req, res, next ) {
next( createError( 404 ) );
} );
// error handler
// eslint-disable-next-line no-unused-vars
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" ) === "development" ? err : {};
// render the error page
res.status( err.status || 500 );
res.render( "error" );
} );
module.exports = app;