-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.js
More file actions
58 lines (49 loc) · 1.55 KB
/
app.js
File metadata and controls
58 lines (49 loc) · 1.55 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
// libs/middleware
const config = require('config');
const debugStartup = require('debug')('app:startup');
const debugUnknownRoute = require('debug')('app:unknownRoute');
const morgan = require('morgan');
const express = require('express');
const cors = require('cors');
const helmet = require('helmet');
const dbAdapter = require('./services/dbAdapter');
//routes
const auth = require('./routes/auth');
const users = require('./routes/users');
const ban = require('./routes/ban');
const verification = require('./routes/verification');
const otp = require('./routes/otp');
const profile = require('./routes/profile');
const app = express();
//default middleware
app.use(express.json());
//app.use(express.urlencoded({extended: true}));
app.use(helmet());
app.use(cors());
//routes
app.use('/api/auth', auth);
app.use('/api/users', users);
app.use('/api/ban', ban);
app.use('/api/verification', verification);
app.use('/api/otp', otp);
app.use('/api/profile', profile);
//read config
debugStartup('Application Name: '+config.get('name'));
//close connection on exit
process.on('SIGINT', function() {
dbAdapter.disconnectFromDatabase();
});
//enable logging for not covered routes
if(app.get('env') === 'development'){
app.use(morgan("tiny",{
"stream": {
write: function(str) { debugUnknownRoute(str.replace("\n","")); }
}
}));
debugStartup('Morgan enabled...');
}
//DB API
dbAdapter.connectToDatabase();
//start application
const port = process.env.PORT || 3000;
app.listen(port, () => debugStartup(`Listening on port ${port}...`));