-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
97 lines (80 loc) · 2.47 KB
/
index.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
'use strict';
const Glue = require('glue');
const path = require('path');
const pwd = path.join(__dirname, '..', '/.env');
require('dotenv').config({path: pwd});
const routes = require('./lib/module');
const util = require('ms-utilities');
const log = util.logger;
// declare plugins
var manifest = {
connections: [{
host: process.env['FILE_SERVE_HOST'] || 'localhost',
port: process.env['FILE_SERVE_PORT'] || 3453
}],
registrations: [
{plugin: 'inert'},
{plugin: 'vision'},
{plugin: 'hapi-swagger'}, {
plugin: {
register: 'hapi-mongodb',
options: {
'url': 'mongodb://' + process.env['DB_HOST'] + ':' + process.env['DB_PORT'] + '/' + process.env['DB_NAME'],
'settings': {
'db': {
'native_parser': false
}
}
}
}
}, {
plugin: {
register: 'good',
options: {
ops: false,
reporters: {
console: [{module: 'good-console'}, 'stdout']
}
}
}
}]
};
// compose Server with plugins
Glue.compose(manifest, {relativeTo: __dirname})
.then(server => {
server.route(routes);
server.on('request-error', (request, err) => {
// log 500 code
log.fatal('Server Error', {
error: err,
requestData: request.orig,
path: request.path
});
});
// log errors before response is sent back to user
server.ext('onPreResponse', (request, reply) => {
const response = request.response;
if (!response.isBoom) {
return reply.continue();
}
// log joi validation error
if (response.data && response.data.isJoi) {
log.fatal('Validation error', {
response: response,
requestData: request.orig,
path: request.path
});
}
reply.continue();
});
// start the server
server.start((err) => {
if (err) {
throw err;
}
console.log('Server running at:', server.info.uri);
});
})
.catch(err => {
throw err;
});