Skip to content

Commit 6088b86

Browse files
save file
1 parent c79d896 commit 6088b86

1 file changed

Lines changed: 99 additions & 0 deletions

File tree

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
2+
3+
4+
/*
5+
6+
//https-server.js:d
7+
8+
20-07-25
9+
10+
11+
*/
12+
13+
14+
var fs = require('fs');
15+
16+
var keys = require('keys.js');
17+
keys.keypressed = keypressed;
18+
var {key,cert} = require('server-cert.js');
19+
var getmime = require('getmime.js');
20+
var argv = require('argv.js');
21+
22+
var root = __dirname+'/';
23+
24+
var host = argv('h','host','127.0.0.1');
25+
var port = argv('p','port',3002);
26+
var url = argv('url','');
27+
var dir = argv('d','dir',root);
28+
var list =[{url,dir}];
29+
30+
require('https').createServer({key,cert},request).listen({host,port});
31+
console.log(`listening https://localhost:${port}`);
32+
33+
34+
function request(req,res){
35+
console.log(req.method,req.url);
36+
var url = req.url.slice(1);
37+
if(url==''){
38+
var result = cmd(req,res);
39+
if(result===false){
40+
return;
41+
}
42+
}
43+
44+
var abs = root+url;
45+
46+
var n = list.length;
47+
for(var j=0;j<n;j++){
48+
49+
var o = list[j];
50+
if(url.startsWith(o.url)){
51+
abs = o.dir+url.slice(o.url.length);
52+
break;
53+
}
54+
55+
}//for
56+
console.log(abs);
57+
if(!fs.existsSync(abs)){
58+
notfound(req,res);
59+
return;
60+
}
61+
62+
var mime = getmime(abs);
63+
64+
var buf = fs.readFileSync(abs);
65+
res.writeHead(200,{'content-type':mime});
66+
res.end(buf);
67+
68+
}//request
69+
70+
71+
function notfound(req,res){
72+
73+
res.writeHead(404);
74+
res.end(`${req.url} not found`);
75+
76+
}//notfound
77+
78+
79+
function cmd(req,res){
80+
81+
if(req.headers.mode==='add'){
82+
var url = req.headers.url;
83+
var dir = req.headers.dir;
84+
list.push({url,dir});
85+
}
86+
87+
}//cmd
88+
89+
90+
function keypressed(key){
91+
92+
console.log('keypressed',key);
93+
94+
}//keypressed
95+
96+
97+
98+
99+

0 commit comments

Comments
 (0)