-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
78 lines (54 loc) · 1.72 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
const http = require("http");
const express = require("express");
const bodyParser = require("body-parser");
const logger = require('morgan');
const helmet = require('helmet');
const cors = require('cors');
const statusMonitor = require('express-status-monitor')({title: 'App Status'});
const rateLimit = require("express-rate-limit");
require('dotenv').config();
const config_database = require('./config/database.js');
const config_app = require('./config/app.js');
//const seeds = require('./seeds');
const {databaseInitializer} = require('./services/Database.js');
const {app_route} = require('./routes');
var App = express();
const limiter = rateLimit({
windowMs: 15 * 60 * 1000,
max: 100
});
App.use(helmet());
if(config_app.app.environment == "development"){
App.use(logger('dev'));
}
App.use(bodyParser.json());
App.use(bodyParser.urlencoded({
extended: true
}));
App.use(cors());
databaseInitializer(config_database.database.hostname);
App.use((request, response, next) => {
response.setHeader('Cache-Control', 'no-cache, no-store');
next();
});
App.use(limiter);
App.get('/health', function (request, response) {
return response.send(200);
});
App.get('/', (request, response, next) => {
return response.status(200).json({
type : 'success',
message: {
name : "O2O Caas API",
version : 'V.1.0.0'
}
});
});
App.use('/api/v1/', app_route);
App.use(statusMonitor);
App.disable('x-powered-by');
App.set('port', process.env.APP_PORT || 8080);
http.createServer(App).listen(App.get('port'), function () {
console.log("Server listening on port " + App.get('port'));
});
module.exports = App;