nv-srv-nd-http-util 1.0.8 → 1.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/head.js +42 -0
- package/index.js +9 -0
- package/package.json +3 -2
- package/req.js +1 -0
- package/tst.js +39 -4
package/head.js
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
const get_key_in_cookie = (ck,key="utoken") => {
|
|
2
|
+
let arr = ck.split(";");
|
|
3
|
+
arr = arr.map(r=>r.trim());
|
|
4
|
+
arr = arr.map(r=>r.split('='));
|
|
5
|
+
for(let i=0;i<arr.length;i++) {
|
|
6
|
+
if(arr[i][0] === key) {
|
|
7
|
+
return(arr[i][1])
|
|
8
|
+
} else {}
|
|
9
|
+
}
|
|
10
|
+
return(null)
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const get_key_in_head = (body,head,urld,key="utoken") => {
|
|
14
|
+
let val;
|
|
15
|
+
if(head[key]) { //head [key]
|
|
16
|
+
val = head[key];
|
|
17
|
+
} else if(urld.q[key]) { // ?[key]=
|
|
18
|
+
val = urld.q[key];
|
|
19
|
+
} else if(head.cookie){ //cookie
|
|
20
|
+
let ck = get_key_in_cookie(head.cookie,key);
|
|
21
|
+
if(ck) {
|
|
22
|
+
val = ck
|
|
23
|
+
} else {
|
|
24
|
+
return(val)
|
|
25
|
+
}
|
|
26
|
+
} else if(body[key]){
|
|
27
|
+
val = body[key]
|
|
28
|
+
} else {
|
|
29
|
+
}
|
|
30
|
+
return(val)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const set_key_in_cookie = (res,val,aft=1000*3600*24*7) => {
|
|
34
|
+
let expire_mts = now() + aft;
|
|
35
|
+
let expire_dt = new Date(expire_mts);
|
|
36
|
+
res.writeHeader("Set-Cookie",`${key}=${val}; path=/; expires=${ expire_dt.toGMTString()};`);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
module.exports = {
|
|
40
|
+
get_key_in_cookie, set_key_in_cookie,
|
|
41
|
+
get_key_in_head,
|
|
42
|
+
}
|
package/index.js
CHANGED
|
@@ -4,10 +4,19 @@ const _res = require("./res");
|
|
|
4
4
|
const _url = require("./url");
|
|
5
5
|
const _tst = require("./tst");
|
|
6
6
|
|
|
7
|
+
|
|
8
|
+
const _head = require("./head");
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
7
14
|
module.exports = {
|
|
8
15
|
creat_srv,_tst,
|
|
9
16
|
_req,_res,
|
|
10
17
|
_url,
|
|
18
|
+
////
|
|
19
|
+
_head,
|
|
11
20
|
|
|
12
21
|
}
|
|
13
22
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nv-srv-nd-http-util",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.10",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"dependencies": {
|
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
"nv-facutil-csutil": "^1.0.13",
|
|
10
10
|
"nv-facutil-prms": "^1.0.3",
|
|
11
11
|
"nv-facutil-surl": "^1.0.2",
|
|
12
|
-
"nv-string-split": "^1.0.6"
|
|
12
|
+
"nv-string-split": "^1.0.6",
|
|
13
|
+
"nv-facutil-pl": "^1.0.2"
|
|
13
14
|
},
|
|
14
15
|
"devDependencies": {},
|
|
15
16
|
"scripts": {
|
package/req.js
CHANGED
package/tst.js
CHANGED
|
@@ -3,8 +3,16 @@ const _path = require("path");
|
|
|
3
3
|
|
|
4
4
|
const creat_srv = require("./srv");
|
|
5
5
|
const _req = require("./req");
|
|
6
|
-
const {
|
|
6
|
+
const {
|
|
7
|
+
extract_nd_http_req,
|
|
8
|
+
recv_req_json_body_ignore_content_length,
|
|
9
|
+
recv_req_json_body_if_has_content_length,
|
|
10
|
+
} = _req;
|
|
7
11
|
|
|
12
|
+
const _res = require("./res");
|
|
13
|
+
const {
|
|
14
|
+
reply_failed_json_reason
|
|
15
|
+
} = _res;
|
|
8
16
|
|
|
9
17
|
const updn_ahandle = async(req,res)=> {
|
|
10
18
|
var {addr,mthd,urld,head} = extract_nd_http_req(req);
|
|
@@ -76,9 +84,9 @@ const dbug_ahandle = async(req,res)=> {
|
|
|
76
84
|
if(head['content-type'] === 'application/json') {
|
|
77
85
|
if(head['transfer-encoding'] === 'chunked') {
|
|
78
86
|
var bytsz = parseInt(Number(head['content-length']));
|
|
79
|
-
if(!
|
|
87
|
+
if(!Number.isNaN(bytsz)) {
|
|
80
88
|
try {
|
|
81
|
-
var j = await recv_req_json_body_if_has_content_length(
|
|
89
|
+
var j = await recv_req_json_body_if_has_content_length(bytsz,req);
|
|
82
90
|
console.dir(j,{depth:null})
|
|
83
91
|
} catch(e) {
|
|
84
92
|
console.log(e);
|
|
@@ -93,7 +101,7 @@ const dbug_ahandle = async(req,res)=> {
|
|
|
93
101
|
}
|
|
94
102
|
} else {
|
|
95
103
|
var bytsz = parseInt(Number(head['content-length']));
|
|
96
|
-
if(!
|
|
104
|
+
if(!Number.isNaN(bytsz)) {
|
|
97
105
|
try {
|
|
98
106
|
var p0 = recv_req_json_body_if_has_content_length(bytsz,req);
|
|
99
107
|
var p1 = new Promise((rs)=> {
|
|
@@ -163,12 +171,39 @@ const creat_dnld_srv = (
|
|
|
163
171
|
) => creat_srv(listen_on,dnld_ahandle,chown_to_user,key_buf,cert_buf);
|
|
164
172
|
|
|
165
173
|
|
|
174
|
+
const {plget} = require("nv-facutil-pl");
|
|
175
|
+
|
|
176
|
+
const _creat_routes_ahandle = (D) => {
|
|
177
|
+
const routes_ahandle = async(req,res)=> {
|
|
178
|
+
var {addr,mthd,urld,head} = extract_nd_http_req(req);
|
|
179
|
+
var handle = plget(D,urld.pl);
|
|
180
|
+
if(handle) {
|
|
181
|
+
handle(addr,mthd,urld,head,req,res);
|
|
182
|
+
} else {
|
|
183
|
+
reply_failed_json_reason(res,`route: /${urld.pl.join("/")} NOT exist`)
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
return(routes_ahandle)
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
const creat_routes_srv = (
|
|
190
|
+
listen_on,D,
|
|
191
|
+
chown_to_user = undefined, // "www-data"
|
|
192
|
+
key_buf = undefined,
|
|
193
|
+
cert_buf = undefined
|
|
194
|
+
) => creat_srv(listen_on, _creat_routes_ahandle(D), chown_to_user,key_buf,cert_buf);
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
|
|
166
199
|
module.exports = {
|
|
167
200
|
creat_echo_srv,
|
|
168
201
|
creat_updn_srv,
|
|
169
202
|
creat_upld_srv,
|
|
170
203
|
creat_dnld_srv,
|
|
171
204
|
creat_dbug_srv,
|
|
205
|
+
////
|
|
206
|
+
creat_routes_srv,
|
|
172
207
|
}
|
|
173
208
|
|
|
174
209
|
|