This repository has been archived by the owner on Jul 13, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathapp.js
113 lines (99 loc) · 3.68 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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
var path = require('path');
var express = require('express');
let fs = require('fs');
const nunjucks = require("nunjucks");
var path = require('path');
var cookieParser = require('cookie-parser');
var createError = require('http-errors');
let winston = require('winston');
var app_logger = require('morgan');
var passport = require('passport');
global.settings = require('./settings');
global.banmi = require('./src/banmi');
global.env = process.env;
global.as_settings = require('./as_settings');
global.logger = winston.createLogger({
level: 'silly',
format: winston.format.json(),
transports: [
new winston.transports.File({filename: './logs/error.log', level: 'error'}),
new winston.transports.File({filename: './logs/combined.log'})
]
});
var logStream = fs.createWriteStream(path.join(__dirname, 'logs/access.log'), {flags: 'a'});
var lm = {};
lm.phrase = function(){return "";};
settings.lm = lm;
var as = require('./src/aerospike');
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
let search_router = require('./routes/search');
let api_router = require("./routes/api");
let init = require("./src/init_session");
var flash = require('connect-flash');
const buddy = require('./src/jwtbuddy');
var app = express();
let njenv = new nunjucks.Environment(new nunjucks.FileSystemLoader('views', {watch: true}), {
autoescape: true,
trimBlocks: true,
lstripBlocks: true
});
njenv.addGlobal("settings", settings).express(app);
// Initialize Passport and restore authentication state, if any, from the
// session.
app.use(passport.initialize());
require('./src/passport')
app.use(flash());
app.use(app_logger('common', {
stream: logStream
}));
app.use(app_logger('dev'));
app.use(express.json());
app.use(express.urlencoded({
extended: false
}));
app.use(cookieParser());
app.use(init);
app.use(express.static(path.join(__dirname, '/public')));
app.use('/', indexRouter);
app.use('/search', search_router.search());
app.use('/api', api_router);
app.use('/login', require("./routes/login"));
app.use('/careers', require("./routes/now_hiring"));
app.use('/about', require('./routes/about'));
app.use('/admin', buddy.checkAuthorization(buddy.levels.financier), require("./routes/admin"));
app.use('/account', buddy.checkAuthorization(buddy.levels.financier), require('./routes/account'));
app.use('/users', buddy.checkAuthorization(buddy.levels.financier), usersRouter);
app.use('/schedule', buddy.checkAuthorization(buddy.levels.developer), require('./routes/sched'));
app.use('/settings', buddy.checkAuthorization(buddy.levels.developer), require('./routes/settings'));
app.use('/test', buddy.checkAuthorization(buddy.levels.developer), require('./routes/test'));
app.use('/logout', buddy.checkAuthorization(buddy.levels.logged_in), require('./routes/logout'));
//app.use('/truncate', buddy.checkAuthorization(buddy.levels.admin), as.truncate);
if (process.env.NODE_ENV !== 'production') {
logger.add(new winston.transports.Console({
format: winston.format.combine(winston.format.colorize(), winston.format.simple())
}));
}
app.use(function (req, res, next) {
if (res.headersSent)
return;
next(createError(404));
});
app.use(function (err, req, res, next) {
if (res.headersSent)
return;
res.locals.message = err.message;
res.locals.error = err;
logger.error(err);
logger.error(JSON.stringify({
level: err.level,
message: err.message,
stack: err.stack
}, null, 4))
res.status(err.status || 450);
res.render('error.html', {
settings: settings,
error: ""
});
});
module.exports = app;