-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtestModule.js
More file actions
120 lines (114 loc) · 4.04 KB
/
testModule.js
File metadata and controls
120 lines (114 loc) · 4.04 KB
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
120
var restHttp = require('RESThttp');
var queryString = require('querystring');
var headerUtil = restHttp.httpHeaderUtil;
var headerKeys = headerUtil.keys;
var responseUtil = restHttp.responseUtil;
var contextUtil = restHttp.contextUtil;
var fileResponses = restHttp.fileResponses;
var foo = "hallo";
restHttp.modules.put( {
id : 'testModule',
resourceLocators : [
{
uriPattern : '/testModule',
methods : {
GET : {
'text/html' : fileResponses.createStreamFileResponse( function( context ) { return 'index.html'; } )
}
}
},
{
uriPattern : '/testModule/forms',
methods : {
GET : {
'text/html' : fileResponses.createStreamFileResponse( function( context ) { return 'POST_normal_PUT_via_AJAX.html'; } )
},
POST : {
'text/html' : function( context ) {
context.requestListener.on( 'data', function( chunk ) {
console.log(chunk.toString());
foo = queryString.parse(chunk.toString()).foo;
});
context.requestListener.on( 'end', function() {
contextUtil.prepare303( context, 'http://nheise.net/testModule/forms/p1' );
responseUtil.send303( context );
});
}
}
}
},
{
uriPattern : '/testModule/forms/p1',
methods : {
GET : {
'text/html' : function( context ) {
contextUtil.prepare200( context, '<p> P1 say\'s ' + foo + '</p>' );
responseUtil.send200( context );
}
},
PUT : {
'text/html' : function( context ) {
console.log(context.request.data);
foo = queryString.parse( context.request.data ).foo;
responseUtil.send200( context );
},
'application/json' : function( context ) {
context.requestListener.on( 'data', function( chunk ) {
console.log(chunk.toString());
foo = queryString.parse(chunk.toString()).foo;
});
context.requestListener.on( 'end', function() {
contextUtil.prepare200( context, JSON.stringify( { 'foo' : foo } ) );
responseUtil.send200( context );
});
}
}
}
},
{
uriPattern : '/testModule/image/{filename}',
methods : {
GET : {
'image/*' : fileResponses.createStreamFileResponse( function( context ) { return 'image/' + context.request.args.filename; } ),
'*/*' : fileResponses.createStreamFileResponse( function( context ) { return 'image/' + context.request.args.filename; } )
}
}
},
{
uriPattern : '/testModule/css/{filename}',
methods : {
GET : {
'text/css' : fileResponses.createStreamFileResponse( function( context ) { return 'css/' + context.request.args.filename; } ),
'*/*' : fileResponses.createStreamFileResponse( function( context ) { return 'css/' + context.request.args.filename; } )
}
}
},
{
uriPattern : '/testModule/js/{filename}',
methods : {
GET : {
'*/*' : fileResponses.createStreamFileResponse( function( context ) { return 'js/' + context.request.args.filename; } )
}
}
},
{
uriPattern : '/testModule/video/{filename}',
methods : {
GET : {
'video/ogg' : fileResponses.createStreamFileResponse( function( context ) { return 'video/' + context.request.args.filename; } ),
'video/mp4' : fileResponses.createStreamFileResponse( function( context ) { return 'video/' + context.request.args.filename; } ),
'*/*' : fileResponses.createStreamFileResponse( function( context ) { return 'video/' + context.request.args.filename; } )
}
}
},
{
uriPattern : '/testModule/json',
methods : {
GET : {
'application/json' : function( context ) { responseUtil.send200( context, JSON.stringify( { status : 'JSON test passed.' } ) ); }
}
}
}
]
});
restHttp.createServer( { name : 'testModule', ip : 'localhost', port : 4321 } );