-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathapp.js
More file actions
114 lines (88 loc) · 3.42 KB
/
Copy pathapp.js
File metadata and controls
114 lines (88 loc) · 3.42 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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
'use strict';
var SwaggerExpress = require('swagger-express-mw');
var express = require('express');
var fs = require('fs');
var path = require("path");
var morgan = require('morgan');
let log = require('./logger.js');
let generateSwagger = require('./generateSwagger.js');
let http = require("http");
let https = require("https");
generateSwagger.generate().then(() => {
function getServer() {
if (process.env.PROTOCOL === "https" ) {
let certificate = fs.readFileSync(process.env.SSL_CERT);
let privateKey = fs.readFileSync(process.env.SSL_KEY);
let chain = fs.readFileSync(process.env.SSL_CA);
log.info("creating https server");
let server = https.createServer({
key: privateKey,
cert: certificate,
ca: chain
}, app);
server.setTimeout(0);
return server;
}
else {
log.info("creating http server");
let server = http.createServer(app);
server.setTimeout(0);
return server;
}
}
var app = express();
var app_v1 = express();
// var app_v0 = express();
var config_v1 = {
appRoot: __dirname,
swaggerFile: "./api/swagger/swagger.yaml"
};
// var config_v0 = {
// appRoot: __dirname,
// swaggerFile: "./api/swagger/swagger_v0.yaml"
// };
SwaggerExpress.create(config_v1, function(err, swaggerExpress) {
if (err) { throw err; }
swaggerExpress.register(app_v1);
});
// SwaggerExpress.create(config_v0, function(err, swaggerExpress) {
// if (err) { throw err; }
// swaggerExpress.register(app_v0);
// });
// app.use('/', app_v0);
app.use('/', app_v1);
// create a write stream (in append mode) and set up a log to record requests
let accessLogStream = fs.createWriteStream(path.join("./logs", "access.log"), {flags: "a"});
app.use(morgan("combined", {stream: accessLogStream}));
module.exports = app; // for testing
const util = require('util');
process.on("uncaughtException", (err) => {
log.error(err, "Something Broke!.");
console.error(err.stack);
});
app.use((req,res,next) => {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
app.use(express.static('api/swagger'));
const imagePath = '/var/www/persist/npn-geo-services/clipped_images';
app.use(express.static(imagePath));
const dynamicAgddPath = '/var/www/persist/npn-geo-services/agdd_maps';
app.use(express.static(dynamicAgddPath));
const zeroMapsPath = '/var/www/persist/npn-geo-services/zero_maps';
app.use(express.static(zeroMapsPath));
const legendsPath = '/var/www/persist/npn-geo-services/legends';
app.use(express.static(legendsPath));
let server = getServer();
server.listen(process.env.GEO_SERVICES_PORT || 3003, () => {
log.info("Server listening on port " + (process.env.GEO_SERVICES_PORT || 3003));
});
// setInterval(function() {
// console.log('HeapUsed in MB: ' + process.memoryUsage().heapUsed / 1048576);
// //console.log(util.inspect(process.memoryUsage()));
// },1000);
}).catch(err => {
log.error(err, 'could not generate swagger.yaml, haulting server');
process.exit(1);
});