-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.js
More file actions
93 lines (92 loc) · 3.21 KB
/
app.js
File metadata and controls
93 lines (92 loc) · 3.21 KB
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
global.settings = require('./settings');
global.as_settings = require('./as_settings');
var lm = require("loader-message");
let winston = require('winston');
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'})
]
});
let funnies = require('funnies');
let fun = new funnies.Funnies();
var createError = require('http-errors');
require('trolld')(25);
var express = require('express');
var app = express();
var path = require('path');
var cookieParser = require('cookie-parser');
var app_logger = require('morgan');
const nunjucks = require("nunjucks");
logger.error((fun.message()));
let fs = require('fs');
let as = require('./src/aerospike');
require('ip_serializer');
app.use('/truncate', as.truncate);
if (process.env.NODE_ENV !== 'production') {
logger.add(new winston.transports.Console({
format: winston.format.combine(winston.format.colorize(), winston.format.simple())
}));
}
logger.debug(JSON.stringify(settings, null, 4));
let njenv = new nunjucks.Environment(new nunjucks.FileSystemLoader('views', {watch: true}), {
autoescape: false,
trimBlocks: true,
lstripBlocks: true
});
njenv.addGlobal("settings", settings)
.express(app);
logger.info(JSON.stringify(njenv.getGlobal("settings")));
var logStream = fs.createWriteStream(path.join(__dirname, 'logs/access.log'), {flags: 'a'}); //TODO this needs pointed to /var/log
settings.lm = lm.phrase()
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());
let init = require("./src/init_session");
app.use(init);
app.use(express.static(path.join(__dirname, '/public')));
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
let search_router = require('./routes/search');
let api_router = require("./routes/api");
app.use('/', indexRouter);
app.use('/search', search_router.search());
app.use('/users', usersRouter);
app.use('/api', api_router);
app.use('/test', require('./routes/test'));
app.use('/admin', require("./routes/admin"));
app.use('/login', require("./routes/login"));
app.use('/careers', require("./routes/now_hiring"));
app.use('/schedule', require('./routes/sched'));
app.use('/account', require('./routes/account'));
app.use('/about', require('./routes/about'));
app.use('/settings', require('./routes/settings'));
app.use(function (req, res, next) {
next(createError(404));
});
logger.info(lm.phrase())
app.use(function (err, req, res, next) {
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);
logger.error((lm.phrase()))
res.render('error.html', {
settings: settings,
error: JSON.stringify({
level: err.level,
message: err.message,
stack: err.stack
}, null, 4).replace(/\\n/g, '\<br \/\>')
});
});
module.exports = app;