-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathserver.js
58 lines (50 loc) · 1.53 KB
/
server.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
const Async = require("async");
const Hapi = require("hapi");
const Inert = require("inert");
const Endpoints = require("./routes/endpoints");
const Pages = require("./routes/pages");
const IpGrabber = require("./helpers/ip_grabber");
let localIp = IpGrabber.local();
let port = 8000;
// Initialize a new server
let server = new Hapi.Server({
connections: {
routes: {
files: {
// Served files will be relative to current directory
relativeTo: __dirname
}
}
}
});
server.connection({ port: process.env.PORT || port });
// Report each response made
server.ext("onPreResponse", (req, rep) => {
let res = req.response;
console.log("Outcoming response:");
console.log(`in: ${new Date}`);
console.log(`to: ${req.info.remoteAddress}`);
console.log(`method: ${req.method}`);
console.log(`url: ${req.url.path}`);
console.log(`status: ${res.statusCode || res.output.statusCode}`);
console.log();
rep.continue();
});
// Register all routes and plug-ins
Async.series([
next => server.register(Inert, next),
next => server.register(Endpoints, next),
next => server.register(Pages, next),
// Once registrations are finished, start the server
next => server.start(next)
// Print message once started
], (err) => {
if (err) throw err;
console.log();
console.log("---------- -------- ------ ---- --");
console.log("----- ---- --- -- -");
console.log(`Server running at ${localIp}:${port}`);
console.log("----- ---- --- -- -");
console.log("---------- -------- ------ ---- --");
console.log();
});