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.
Files changed (5) hide show
  1. package/head.js +42 -0
  2. package/index.js +9 -0
  3. package/package.json +3 -2
  4. package/req.js +1 -0
  5. 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.8",
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
@@ -1,5 +1,6 @@
1
1
  const _ck = require("nv-cookie-parse-cookie");
2
2
  const _surl = require("nv-facutil-surl");
3
+ const _ps = require("nv-facutil-prms").ps;
3
4
 
4
5
  const extract_nd_http_req = (req,scheme="http")=> {
5
6
  var addr = req.socket._getpeername();
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 {extract_nd_http_req} = _req;
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(!Object.isNaN(bytsz)) {
87
+ if(!Number.isNaN(bytsz)) {
80
88
  try {
81
- var j = await recv_req_json_body_if_has_content_length(0,req);
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(!Object.isNaN(bytsz)) {
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