-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrequest-handler.js
53 lines (43 loc) · 1.25 KB
/
request-handler.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
var request_counter = require('./request-counter')
, unique_enforcer = require('./unique-enforcer')
, get_value = require('./get-value')
, redirect = require('./redirector')
var counter = request_counter()
, check_unique = unique_enforcer()
module.exports = {
path: '/{handler*}',
method: '*',
handler: handler,
config: {
pre: [
{ method: check_unique },
[
{ method: delay_response, assign: 'delay' },
{ method: counter, assign: 'stats' },
],
{ method: redirect },
],
}
}
function handler(request, reply) {
console.log("\n => %s %s", request.method.toUpperCase(), request.path)
console.log("Headers:", request.headers)
if (request.params)
console.log("Params:", request.params)
if (request.query)
console.log("QueryString:", request.query)
if (request.payload)
console.log("Payload:", request.payload)
console.log("Delay:", request.pre.delay)
console.log("Server load:", request.server.load)
reply(request.headers)
counter.count_response()
console.log("Stats:", request.pre.stats)
}
function delay_response(request, reply) {
var delay = get_value(request, 'delay', 0)
if (delay)
setTimeout(function() { reply(delay); }, delay)
else
reply(delay)
}