Skip to content

Commit c778bb1

Browse files
save file
1 parent 89718fb commit c778bb1

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed

code-dev/25-10-21/ex/patch.js

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
2+
3+
4+
5+
(()=>{
6+
7+
var fs = require('fs');
8+
var http = require('http');
9+
//var server = http.createServer(request)
10+
var list = [];
11+
12+
var createServer = http.createServer;
13+
var on = server.on;
14+
15+
server.on = function(event,listener){
16+
17+
if(event==='request'){
18+
list.push(args[1]);
19+
return;
20+
}
21+
return on.apply(server,arguments);
22+
23+
}//on
24+
25+
26+
http.createServer = function(opts,listener){
27+
console.log('override');
28+
if(arguments.length==1){
29+
listener = opts;
30+
opts = undefined;
31+
}
32+
33+
if(listener){
34+
list.push(listener);
35+
}
36+
37+
var server = createServer.call(server,opts,request);
38+
return server;
39+
40+
}//createServer
41+
42+
43+
function request(req,res){
44+
console.log('sandbox',req.url);
45+
if(req.url=='/setup'){
46+
var html = fs.readFileSync('setup','utf8');
47+
res.writeHead(200,{'content-type':'text/html'});
48+
res.end(html);
49+
return;
50+
}
51+
52+
var n = list.length;
53+
for(var i=0;i<n;i++){
54+
55+
var fn = list[i];
56+
var result = fn(req,res);
57+
if(result===false){
58+
return;
59+
}
60+
61+
}//for
62+
63+
}//request
64+
65+
})();
66+
67+
68+
69+
70+

0 commit comments

Comments
 (0)