Skip to content

Commit 89b8e9c

Browse files
committed
mumble mumble
0 parents  commit 89b8e9c

File tree

5 files changed

+181
-0
lines changed

5 files changed

+181
-0
lines changed

basic.js

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
var Hapi = require('hapi');
2+
3+
// Create a server with a host and port
4+
var server = Hapi.createServer('127.0.0.1', 8000, {});
5+
6+
// Add the route
7+
server.route({
8+
method: 'GET',
9+
path: '/hello',
10+
config: {
11+
handler: function (req) {
12+
13+
req.reply('hello world');
14+
}
15+
}
16+
});
17+
18+
// Start the server
19+
server.start();

caching.js

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
var Hapi = require('hapi'),
2+
good = require('good');
3+
4+
// Create a server with a host and port
5+
var server = Hapi.createServer('127.0.0.1', 8000, {
6+
cache: 'redis'
7+
});
8+
9+
// Add the route
10+
server.route({
11+
method: 'GET',
12+
path: '/hello',
13+
config:{
14+
handler: function (req) {
15+
req.reply('hello world');
16+
},
17+
cache: {
18+
mode: 'client+server',
19+
expiresIn: 60000
20+
}
21+
}
22+
});
23+
24+
server.pack.require('good', {
25+
subscribers: {
26+
console: ['request', 'log', 'ops']
27+
},
28+
leakDetection: true,
29+
extendedRequests: true
30+
},
31+
function (err){
32+
if(err){
33+
throw err;
34+
}
35+
}
36+
);
37+
38+
// Start the server
39+
server.start(function(){
40+
server.log(['info'], 'server started...');
41+
});

logging.js

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
var Hapi = require('hapi'),
2+
good = require('good');
3+
4+
// Create a server with a host and port
5+
var server = Hapi.createServer('127.0.0.1', 8000, {});
6+
7+
// Add the route
8+
server.route({
9+
method: 'GET',
10+
path: '/hello',
11+
config: {
12+
handler: function (req) {
13+
14+
req.reply('hello world');
15+
}
16+
}
17+
});
18+
19+
server.pack.require('good', {
20+
subscribers: {
21+
console: ['request', 'log', 'ops'],
22+
'logs/': ['request', 'log', 'ops'],
23+
'http://some.http.endpoint/log': ['request'],
24+
'udp://some.syslog.server:1234': ['log']
25+
},
26+
leakDetection: true,
27+
extendedRequests: true
28+
},
29+
function (err){
30+
if(err){
31+
throw err;
32+
}
33+
}
34+
);
35+
36+
// Start the server
37+
server.start(function(){
38+
server.log(['info'], 'server started...');
39+
});

package.json

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"name": "hapi-example",
3+
"version": "0.1.0",
4+
"description": "",
5+
"main": "basic.js",
6+
"scripts": {
7+
"test": "echo \"Error: no test specified\" && exit 1"
8+
},
9+
"author": "",
10+
"license": "BSD",
11+
"dependencies": {
12+
"hapi": "~1.14.0",
13+
"good": "~0.12.0",
14+
"redis": "~0.8.6",
15+
"joi": "~1.2.2"
16+
}
17+
}

validation.js

+65
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
var Hapi = require('hapi');
2+
var Joi = require('joi');
3+
4+
// Create a server with a host and port
5+
var server = Hapi.createServer('127.0.0.1', 8000, {});
6+
7+
// Add the route
8+
server.route([
9+
{
10+
method: 'GET',
11+
path: '/hello/{name}',
12+
config: {
13+
handler: function (req) {
14+
req.reply('hello ' + req.params.name);
15+
},
16+
validate:{
17+
path: {
18+
name: Joi.types.String().regex(/Orlando|Richard|Potato/i)
19+
}
20+
}
21+
}
22+
},
23+
{
24+
method: 'GET',
25+
path: '/people/{id}',
26+
config: {
27+
handler: function (req) {
28+
req.reply('hello ' + req.params.id);
29+
},
30+
validate:{
31+
path: {
32+
id: Joi.types.Number().integer().min(0)
33+
}
34+
}
35+
}
36+
},
37+
{
38+
method: 'PUT',
39+
path: '/people/{id}',
40+
config: {
41+
handler: function (req) {
42+
req.reply('hello ' + req.payload.name);
43+
},
44+
validate:{
45+
path: {
46+
id: Joi.types.Number().integer().min(0)
47+
},
48+
payload:{
49+
id: Joi.types.Number().integer().min(0),
50+
name: Joi.types.String().regex(/Orlando|Richard|Potato/i),
51+
tags: Joi.types.Array().includes('foo', 'bar'),
52+
address: Joi.types.Object({
53+
line1: Joi.types.String().emptyOk(),
54+
line2: Joi.types.String().emptyOk(),
55+
city: Joi.types.String().emptyOk(),
56+
postcode: Joi.types.String().emptyOk()
57+
})
58+
}
59+
}
60+
}
61+
}
62+
]);
63+
64+
// Start the server
65+
server.start();

0 commit comments

Comments
 (0)