HApi课堂实验手册(四)

上一个实验 中,演示了Route的Pre属性,本次实验我们将进一步聚焦在 Route 的返回类型上。

示例代码

在项目中新建名为: ResponseValue.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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
const Hapi = require('hapi');
const Stream = require('stream');

const server = new Hapi.Server({
host: 'localhost',
port: 8000
});

server.route([
{
method: 'GET',
path: '/null',
handler: function (request, h) {

return null;
}
},
{
method: 'GET',
path: '/string',
handler: function (request, h) {

return 'string';
}
},
{
method: 'GET',
path: '/number',
handler: function (request, h) {

return 42;
}
},
{
method: 'GET',
path: '/boolean',
handler: function (request, h) {

return true;
}
},
{
method: 'GET',
path: '/buffer',
handler: function (request, h) {

const buffer = new Buffer('This is a string in a buffer!', 'utf-8');
return buffer;
}
},
{
method: 'GET',
path: '/error',
handler: function (request, h) {

return new Error('this is an error');
}
},
{
method: 'GET',
path: '/stream',
handler: function (request, h) {

const stream = new Stream.Readable();
stream.push('first chunk ');
stream.push('second chunk');
stream.push(null); // We are done pushing data
return stream;
}
},
{
method: 'GET',
path: '/promise',
handler: function (request, h) {

const promise = new Promise((resolve, reject) => {

return resolve({ firstAction: 'Do an intial action' });
});
promise.then((response) => {

response.secondAction = 'A second action was performed';
return response;
});
return promise;
}
},
{
method: 'GET',
path: '/object',
handler: function (request, h) {

return { 'description': 'this is a sample object being returned' };
}
},
{
method: 'GET',
path: '/array',
handler: function (request, h) {

return [1, 2, 'test', { 'sample': 'object' }];
}
}
]);

const start = async function() {

try {
await server.start();

console.log('Server running at:', server.info.uri);

} catch(err) {
console.log(err);
process.exit(1);
}
}

start();

本文标题:HApi课堂实验手册(四)

文章作者:Morning Star

发布时间:2019年11月09日 - 12:11

最后更新:2021年04月16日 - 15:04

原始链接:https://www.mls-tech.info/node/hapi-practise-manual-04/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。