cgserver 8.6.8 → 8.7.0

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 (160) hide show
  1. package/README.md +4 -0
  2. package/dist/lib/Framework/AI/AiObject.js +10 -10
  3. package/dist/lib/Framework/AI/Astar.js +133 -133
  4. package/dist/lib/Framework/AI/BehaviorAI.js +307 -307
  5. package/dist/lib/Framework/AI/Entity.js +33 -33
  6. package/dist/lib/Framework/AI/Point.js +68 -68
  7. package/dist/lib/Framework/AI/TriggerMgr.js +201 -201
  8. package/dist/lib/Framework/Config/Config.js +53 -53
  9. package/dist/lib/Framework/Config/DbConfig.js +14 -0
  10. package/dist/lib/Framework/Config/FrameworkConfig.js +207 -240
  11. package/dist/lib/Framework/Config/IServerConfig.js +26 -26
  12. package/dist/lib/Framework/Config/_error_.js +35 -35
  13. package/dist/lib/Framework/Core/Core.js +639 -639
  14. package/dist/lib/Framework/Core/Timer.js +116 -116
  15. package/dist/lib/Framework/Database/Decorator/AutoIncrement.js +11 -11
  16. package/dist/lib/Framework/Database/Decorator/DBCache.js +64 -64
  17. package/dist/lib/Framework/Database/Decorator/NotNull.js +11 -11
  18. package/dist/lib/Framework/Database/Decorator/PrimaryKey.js +11 -11
  19. package/dist/lib/Framework/Database/Decorator/Property.js +61 -61
  20. package/dist/lib/Framework/Database/Decorator/Table.js +15 -15
  21. package/dist/lib/Framework/Database/Decorator/Type.js +20 -20
  22. package/dist/lib/Framework/Database/MSSqlManager.js +53 -43
  23. package/dist/lib/Framework/Database/MongoBaseService.js +126 -117
  24. package/dist/lib/Framework/Database/MongoManager.js +462 -462
  25. package/dist/lib/Framework/Database/MysqlBaseService.js +281 -281
  26. package/dist/lib/Framework/Database/MysqlManager.js +179 -180
  27. package/dist/lib/Framework/Database/RedisManager.js +61 -53
  28. package/dist/lib/Framework/Decorator/AdminValidate.js +19 -19
  29. package/dist/lib/Framework/Decorator/AuthorityValidate.js +22 -22
  30. package/dist/lib/Framework/Decorator/CreatorValidate.js +19 -19
  31. package/dist/lib/Framework/Decorator/JsonAdminValidate.js +15 -15
  32. package/dist/lib/Framework/Decorator/JsonAuthorityValidate.js +20 -20
  33. package/dist/lib/Framework/Decorator/JsonCreatorValidate.js +19 -19
  34. package/dist/lib/Framework/Decorator/SyncCall.js +42 -42
  35. package/dist/lib/Framework/Decorator/SyncCallServer.js +77 -77
  36. package/dist/lib/Framework/Logic/CacheTool.js +73 -73
  37. package/dist/lib/Framework/Logic/EventTool.js +27 -27
  38. package/dist/lib/Framework/Logic/HttpTool.js +75 -75
  39. package/dist/lib/Framework/Logic/Log.js +140 -140
  40. package/dist/lib/Framework/Logic/SyncQueueTool.js +43 -43
  41. package/dist/lib/Framework/Service/MongoAccountService.js +367 -367
  42. package/dist/lib/Framework/Service/MongoCacheService.js +42 -42
  43. package/dist/lib/Framework/Service/MongoUserService.js +100 -100
  44. package/dist/lib/Framework/Service/MysqlAccountService.js +441 -441
  45. package/dist/lib/Framework/Service/MysqlUserService.js +171 -171
  46. package/dist/lib/Framework/Service/ini.js +36 -36
  47. package/dist/lib/Framework/SocketServer/IClientWebSocket.js +44 -44
  48. package/dist/lib/Framework/SocketServer/IRpc.js +12 -12
  49. package/dist/lib/Framework/SocketServer/IRpcClientWebSocket.js +63 -63
  50. package/dist/lib/Framework/SocketServer/IRpcServerWebSocket.js +63 -63
  51. package/dist/lib/Framework/SocketServer/IServerWebSocket.js +75 -75
  52. package/dist/lib/Framework/SocketServer/ISocketServer.js +205 -202
  53. package/dist/lib/Framework/SocketServer/IWebSocket.js +195 -195
  54. package/dist/lib/Framework/SocketServer/ProtoFilter/GoogleProtoFilter.js +57 -57
  55. package/dist/lib/Framework/SocketServer/ProtoFilter/IProtoFilter.js +8 -8
  56. package/dist/lib/Framework/SocketServer/ProtoFilter/JsonProtoFilter.js +29 -29
  57. package/dist/lib/Framework/SocketServer/ProtoFilter/ProtoFactory.js +31 -31
  58. package/dist/lib/Framework/ThirdParty/AlipayTool.js +203 -203
  59. package/dist/lib/Framework/ThirdParty/Alisms.js +46 -46
  60. package/dist/lib/Framework/ThirdParty/AppleTool.js +234 -234
  61. package/dist/lib/Framework/ThirdParty/CgMq.js +132 -132
  62. package/dist/lib/Framework/ThirdParty/EmailTool.js +33 -33
  63. package/dist/lib/Framework/ThirdParty/OpenSocial.js +32 -32
  64. package/dist/lib/Framework/ThirdParty/QQTool.js +118 -118
  65. package/dist/lib/Framework/ThirdParty/QiniuTool.js +21 -21
  66. package/dist/lib/Framework/ThirdParty/Rpc.js +63 -63
  67. package/dist/lib/Framework/ThirdParty/WechatOATool.js +61 -61
  68. package/dist/lib/Framework/ThirdParty/WechatTool.js +74 -74
  69. package/dist/lib/Framework/WebServer/Controller/BaseController.js +112 -112
  70. package/dist/lib/Framework/WebServer/Controller/MongoBaseUserController.js +169 -169
  71. package/dist/lib/Framework/WebServer/Controller/MysqlBaseUserController.js +169 -169
  72. package/dist/lib/Framework/WebServer/Engine/ControllerManager.js +112 -112
  73. package/dist/lib/Framework/WebServer/Engine/Engine.js +152 -152
  74. package/dist/lib/Framework/WebServer/Engine/RazorJs.js +544 -544
  75. package/dist/lib/Framework/WebServer/Engine/Request.js +237 -237
  76. package/dist/lib/Framework/WebServer/Engine/Response.js +100 -100
  77. package/dist/lib/Framework/WebServer/IWebServer.js +59 -54
  78. package/dist/lib/Framework/cgserver.js +121 -111
  79. package/dist/lib/Framework/index.js +201 -191
  80. package/dist/lib/test/test.js +21 -21
  81. package/dist/types/Framework/AI/AiObject.d.ts +5 -5
  82. package/dist/types/Framework/AI/Astar.d.ts +38 -38
  83. package/dist/types/Framework/AI/BehaviorAI.d.ts +24 -24
  84. package/dist/types/Framework/AI/Entity.d.ts +12 -12
  85. package/dist/types/Framework/AI/Point.d.ts +17 -17
  86. package/dist/types/Framework/AI/TriggerMgr.d.ts +52 -52
  87. package/dist/types/Framework/Config/Config.d.ts +12 -12
  88. package/dist/types/Framework/Config/DbConfig.d.ts +10 -0
  89. package/dist/types/Framework/Config/FrameworkConfig.d.ts +203 -228
  90. package/dist/types/Framework/Config/IServerConfig.d.ts +9 -9
  91. package/dist/types/Framework/Config/_error_.d.ts +99 -99
  92. package/dist/types/Framework/Core/Core.d.ts +108 -108
  93. package/dist/types/Framework/Core/Timer.d.ts +16 -16
  94. package/dist/types/Framework/Database/Decorator/AutoIncrement.d.ts +1 -1
  95. package/dist/types/Framework/Database/Decorator/DBCache.d.ts +23 -23
  96. package/dist/types/Framework/Database/Decorator/NotNull.d.ts +1 -1
  97. package/dist/types/Framework/Database/Decorator/PrimaryKey.d.ts +1 -1
  98. package/dist/types/Framework/Database/Decorator/Property.d.ts +57 -57
  99. package/dist/types/Framework/Database/Decorator/Table.d.ts +1 -1
  100. package/dist/types/Framework/Database/Decorator/Type.d.ts +1 -1
  101. package/dist/types/Framework/Database/MSSqlManager.d.ts +27 -17
  102. package/dist/types/Framework/Database/MongoBaseService.d.ts +81 -81
  103. package/dist/types/Framework/Database/MongoManager.d.ts +156 -156
  104. package/dist/types/Framework/Database/MysqlBaseService.d.ts +34 -34
  105. package/dist/types/Framework/Database/MysqlManager.d.ts +53 -41
  106. package/dist/types/Framework/Database/RedisManager.d.ts +24 -17
  107. package/dist/types/Framework/Decorator/AdminValidate.d.ts +1 -1
  108. package/dist/types/Framework/Decorator/AuthorityValidate.d.ts +2 -2
  109. package/dist/types/Framework/Decorator/CreatorValidate.d.ts +1 -1
  110. package/dist/types/Framework/Decorator/JsonAdminValidate.d.ts +1 -1
  111. package/dist/types/Framework/Decorator/JsonAuthorityValidate.d.ts +2 -2
  112. package/dist/types/Framework/Decorator/JsonCreatorValidate.d.ts +1 -1
  113. package/dist/types/Framework/Decorator/SyncCall.d.ts +12 -12
  114. package/dist/types/Framework/Decorator/SyncCallServer.d.ts +14 -14
  115. package/dist/types/Framework/Logic/CacheTool.d.ts +27 -27
  116. package/dist/types/Framework/Logic/EventTool.d.ts +13 -13
  117. package/dist/types/Framework/Logic/HttpTool.d.ts +15 -15
  118. package/dist/types/Framework/Logic/Log.d.ts +25 -25
  119. package/dist/types/Framework/Logic/SyncQueueTool.d.ts +21 -21
  120. package/dist/types/Framework/Service/MongoAccountService.d.ts +69 -69
  121. package/dist/types/Framework/Service/MongoCacheService.d.ts +14 -14
  122. package/dist/types/Framework/Service/MongoUserService.d.ts +35 -35
  123. package/dist/types/Framework/Service/MysqlAccountService.d.ts +74 -74
  124. package/dist/types/Framework/Service/MysqlUserService.d.ts +33 -33
  125. package/dist/types/Framework/Service/ini.d.ts +29 -29
  126. package/dist/types/Framework/SocketServer/IClientWebSocket.d.ts +17 -17
  127. package/dist/types/Framework/SocketServer/IRpc.d.ts +8 -8
  128. package/dist/types/Framework/SocketServer/IRpcClientWebSocket.d.ts +16 -16
  129. package/dist/types/Framework/SocketServer/IRpcServerWebSocket.d.ts +16 -16
  130. package/dist/types/Framework/SocketServer/IServerWebSocket.d.ts +28 -28
  131. package/dist/types/Framework/SocketServer/ISocketServer.d.ts +45 -45
  132. package/dist/types/Framework/SocketServer/IWebSocket.d.ts +60 -60
  133. package/dist/types/Framework/SocketServer/ProtoFilter/GoogleProtoFilter.d.ts +9 -9
  134. package/dist/types/Framework/SocketServer/ProtoFilter/IProtoFilter.d.ts +9 -9
  135. package/dist/types/Framework/SocketServer/ProtoFilter/JsonProtoFilter.d.ts +6 -6
  136. package/dist/types/Framework/SocketServer/ProtoFilter/ProtoFactory.d.ts +8 -8
  137. package/dist/types/Framework/ThirdParty/AlipayTool.d.ts +109 -109
  138. package/dist/types/Framework/ThirdParty/Alisms.d.ts +14 -14
  139. package/dist/types/Framework/ThirdParty/AppleTool.d.ts +131 -131
  140. package/dist/types/Framework/ThirdParty/CgMq.d.ts +51 -51
  141. package/dist/types/Framework/ThirdParty/EmailTool.d.ts +5 -5
  142. package/dist/types/Framework/ThirdParty/OpenSocial.d.ts +7 -7
  143. package/dist/types/Framework/ThirdParty/QQTool.d.ts +41 -41
  144. package/dist/types/Framework/ThirdParty/QiniuTool.d.ts +6 -6
  145. package/dist/types/Framework/ThirdParty/Rpc.d.ts +20 -20
  146. package/dist/types/Framework/ThirdParty/WechatOATool.d.ts +13 -13
  147. package/dist/types/Framework/ThirdParty/WechatTool.d.ts +20 -20
  148. package/dist/types/Framework/WebServer/Controller/BaseController.d.ts +33 -33
  149. package/dist/types/Framework/WebServer/Controller/MongoBaseUserController.d.ts +27 -27
  150. package/dist/types/Framework/WebServer/Controller/MysqlBaseUserController.d.ts +27 -27
  151. package/dist/types/Framework/WebServer/Engine/ControllerManager.d.ts +35 -35
  152. package/dist/types/Framework/WebServer/Engine/Engine.d.ts +21 -21
  153. package/dist/types/Framework/WebServer/Engine/RazorJs.d.ts +21 -21
  154. package/dist/types/Framework/WebServer/Engine/Request.d.ts +35 -35
  155. package/dist/types/Framework/WebServer/Engine/Response.d.ts +30 -30
  156. package/dist/types/Framework/WebServer/IWebServer.d.ts +20 -20
  157. package/dist/types/Framework/cgserver.d.ts +27 -25
  158. package/dist/types/Framework/index.d.ts +91 -86
  159. package/dist/types/test/test.d.ts +1 -1
  160. package/package.json +29 -32
@@ -1,237 +1,237 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Request = void 0;
4
- const url_1 = require("url");
5
- const Core_1 = require("../../Core/Core");
6
- const Log_1 = require("../../Logic/Log");
7
- class Request {
8
- _req = null;
9
- get baseReq() {
10
- return this._req;
11
- }
12
- _cfg = null;
13
- _post_cb = null;
14
- set onPost(value) {
15
- this._post_cb = value;
16
- }
17
- _module = "";
18
- get module() {
19
- return this._module;
20
- }
21
- _controller = "";
22
- get controller() {
23
- return this._controller;
24
- }
25
- _action = "";
26
- get action() {
27
- return this._action;
28
- }
29
- _suffix = "";
30
- get suffix() {
31
- return this._suffix;
32
- }
33
- _file_url = null;
34
- get fileUrl() {
35
- return this._file_url;
36
- }
37
- _params = {};
38
- get params() {
39
- var body = (this._req.query || {});
40
- for (let k in body) {
41
- var v = body[k];
42
- if (!Core_1.core.isString(v)) {
43
- continue;
44
- }
45
- if (parseInt(v) == v) {
46
- body[k] = parseInt(v);
47
- }
48
- else if (parseFloat(v) == v) {
49
- body[k] == parseFloat(v);
50
- }
51
- }
52
- return body;
53
- }
54
- get postData() {
55
- var body = this._req.body || {};
56
- if (this._req.headers["content-type"] == "application/x-www-form-urlencoded") {
57
- for (let k in body) {
58
- body = k;
59
- break;
60
- }
61
- }
62
- if (Core_1.core.isString(body)) {
63
- try {
64
- body = JSON.parse(body);
65
- }
66
- catch (e) {
67
- Log_1.GLog.error("post data--" + body + "--parse error");
68
- body = {};
69
- }
70
- }
71
- // 暂时去掉强制数值转换
72
- // //服务器会有一层空key的json解析
73
- // for(let k in body)
74
- // {
75
- // var v = body[k]
76
- // if(!core.isString(v))
77
- // {
78
- // continue
79
- // }
80
- // let intv = parseInt(v)
81
- // if(intv==v)
82
- // {
83
- // body[k]=intv
84
- // }
85
- // else if(parseFloat(v)==v)
86
- // {
87
- // body[k]==parseFloat(v)
88
- // }
89
- // }
90
- return body;
91
- }
92
- get url() {
93
- return this._req.url;
94
- }
95
- get root() {
96
- let root = this._req.headers.host;
97
- if (root != "") {
98
- root = this._req.protocol + "://" + root;
99
- }
100
- return root;
101
- }
102
- get method() {
103
- return this._req.method;
104
- }
105
- get headers() {
106
- return this._req.headers;
107
- }
108
- get remoteHost() {
109
- let ips = this._req.headers['x-forwarded-for'];
110
- let ip = "";
111
- if (Core_1.core.isArray(ips)) {
112
- ip = ips[0];
113
- }
114
- else {
115
- ip = ips;
116
- }
117
- ip = ip ||
118
- this._req.connection.remoteAddress ||
119
- this._req.socket.remoteAddress ||
120
- this._req.ip || "";
121
- ip = ip.replace("::ffff:", "");
122
- return ip;
123
- }
124
- constructor(req, cfg) {
125
- this._cfg = cfg;
126
- this._req = req;
127
- this._init();
128
- }
129
- getCookie(key) {
130
- let cookie_key = this._cfg.cookie.prefix + key;
131
- if (!this._req.cookies) {
132
- return null;
133
- }
134
- return this._req.cookies[cookie_key];
135
- }
136
- _init() {
137
- let method = this._req.method.toLowerCase();
138
- if (method != "get" && method != "post") {
139
- return;
140
- }
141
- let path = this._req.url;
142
- //服务器根目录路径写法,链接转换
143
- let _i = path.lastIndexOf("~");
144
- if (_i >= 0) {
145
- path = path.substr(_i + 1);
146
- }
147
- //处理参数
148
- this._parseParams(path);
149
- }
150
- _addListener(event, listener) {
151
- this._req.addListener(event, listener);
152
- }
153
- _parseParams(path) {
154
- this._module = this._cfg.routs.onlyModule || this._cfg.routs.defaults.module;
155
- this._controller = this._cfg.routs.defaults.controller;
156
- this._action = this._cfg.routs.defaults.action;
157
- this._suffix = null;
158
- this._file_url = null;
159
- this._params = {};
160
- if (path == "/") {
161
- return;
162
- }
163
- let firstQuoteIndex = path.indexOf("?");
164
- let preQuoteStr = path;
165
- if (firstQuoteIndex > 0) {
166
- preQuoteStr = path.substring(0, firstQuoteIndex);
167
- }
168
- let lastDotIndex = preQuoteStr.lastIndexOf(".");
169
- if (lastDotIndex > 0) {
170
- let dotStr = preQuoteStr.substring(lastDotIndex + 1);
171
- this._suffix = dotStr;
172
- this._file_url = preQuoteStr;
173
- return;
174
- }
175
- let quote_index = path.indexOf("?");
176
- if (quote_index >= 0) {
177
- let url = new url_1.URL(path);
178
- url.searchParams.forEach((value, name, searchParams) => {
179
- this._params[name] = value;
180
- });
181
- path = path.substring(0, quote_index);
182
- }
183
- let params = path.split("/");
184
- let default_module = false;
185
- if (this._cfg.routs.onlyModule) {
186
- default_module = true;
187
- }
188
- if (params.length > 1 && params[1].length > 0) {
189
- /**
190
- * 如果是only模式,那么就不支持controller和module相同,
191
- * 如果相同则认为是模块名,这样就可以同时支持,带模块的路径模式和非带模块的路径模式了
192
- */
193
- if (default_module
194
- && params[1].toLowerCase() == this._cfg.routs.onlyModule.toLowerCase()) {
195
- default_module = false;
196
- }
197
- if (default_module) {
198
- this._controller = params[1];
199
- }
200
- else {
201
- this._module = params[1];
202
- }
203
- }
204
- if (params.length > 2 && params[2].length > 0) {
205
- if (default_module) {
206
- this._action = params[2];
207
- }
208
- else {
209
- this._controller = params[2];
210
- }
211
- }
212
- if (params.length > 3
213
- && params[3].length > 0
214
- && !default_module) {
215
- this._action = params[3];
216
- }
217
- this._params = this._params || {};
218
- return;
219
- }
220
- debugInfo() {
221
- if (!this._cfg.debug) {
222
- return;
223
- }
224
- let debuginfo = {
225
- module: this._module,
226
- controller: this._controller,
227
- action: this._action,
228
- suffix: this._suffix,
229
- file_url: this._file_url,
230
- params: this._params,
231
- post: this.postData,
232
- method: this._req.method.toLowerCase()
233
- };
234
- Log_1.GLog.info(debuginfo);
235
- }
236
- }
237
- exports.Request = Request;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Request = void 0;
4
+ const url_1 = require("url");
5
+ const Core_1 = require("../../Core/Core");
6
+ const Log_1 = require("../../Logic/Log");
7
+ class Request {
8
+ _req = null;
9
+ get baseReq() {
10
+ return this._req;
11
+ }
12
+ _cfg = null;
13
+ _post_cb = null;
14
+ set onPost(value) {
15
+ this._post_cb = value;
16
+ }
17
+ _module = "";
18
+ get module() {
19
+ return this._module;
20
+ }
21
+ _controller = "";
22
+ get controller() {
23
+ return this._controller;
24
+ }
25
+ _action = "";
26
+ get action() {
27
+ return this._action;
28
+ }
29
+ _suffix = "";
30
+ get suffix() {
31
+ return this._suffix;
32
+ }
33
+ _file_url = null;
34
+ get fileUrl() {
35
+ return this._file_url;
36
+ }
37
+ _params = {};
38
+ get params() {
39
+ var body = (this._req.query || {});
40
+ for (let k in body) {
41
+ var v = body[k];
42
+ if (!Core_1.core.isString(v)) {
43
+ continue;
44
+ }
45
+ if (parseInt(v) == v) {
46
+ body[k] = parseInt(v);
47
+ }
48
+ else if (parseFloat(v) == v) {
49
+ body[k] == parseFloat(v);
50
+ }
51
+ }
52
+ return body;
53
+ }
54
+ get postData() {
55
+ var body = this._req.body || {};
56
+ if (this._req.headers["content-type"] == "application/x-www-form-urlencoded") {
57
+ for (let k in body) {
58
+ body = k;
59
+ break;
60
+ }
61
+ }
62
+ if (Core_1.core.isString(body)) {
63
+ try {
64
+ body = JSON.parse(body);
65
+ }
66
+ catch (e) {
67
+ Log_1.GLog.error("post data--" + body + "--parse error");
68
+ body = {};
69
+ }
70
+ }
71
+ // 暂时去掉强制数值转换
72
+ // //服务器会有一层空key的json解析
73
+ // for(let k in body)
74
+ // {
75
+ // var v = body[k]
76
+ // if(!core.isString(v))
77
+ // {
78
+ // continue
79
+ // }
80
+ // let intv = parseInt(v)
81
+ // if(intv==v)
82
+ // {
83
+ // body[k]=intv
84
+ // }
85
+ // else if(parseFloat(v)==v)
86
+ // {
87
+ // body[k]==parseFloat(v)
88
+ // }
89
+ // }
90
+ return body;
91
+ }
92
+ get url() {
93
+ return this._req.url;
94
+ }
95
+ get root() {
96
+ let root = this._req.headers.host;
97
+ if (root != "") {
98
+ root = this._req.protocol + "://" + root;
99
+ }
100
+ return root;
101
+ }
102
+ get method() {
103
+ return this._req.method;
104
+ }
105
+ get headers() {
106
+ return this._req.headers;
107
+ }
108
+ get remoteHost() {
109
+ let ips = this._req.headers['x-forwarded-for'];
110
+ let ip = "";
111
+ if (Core_1.core.isArray(ips)) {
112
+ ip = ips[0];
113
+ }
114
+ else {
115
+ ip = ips;
116
+ }
117
+ ip = ip ||
118
+ this._req.connection.remoteAddress ||
119
+ this._req.socket.remoteAddress ||
120
+ this._req.ip || "";
121
+ ip = ip.replace("::ffff:", "");
122
+ return ip;
123
+ }
124
+ constructor(req, cfg) {
125
+ this._cfg = cfg;
126
+ this._req = req;
127
+ this._init();
128
+ }
129
+ getCookie(key) {
130
+ let cookie_key = this._cfg.cookie.prefix + key;
131
+ if (!this._req.cookies) {
132
+ return null;
133
+ }
134
+ return this._req.cookies[cookie_key];
135
+ }
136
+ _init() {
137
+ let method = this._req.method.toLowerCase();
138
+ if (method != "get" && method != "post") {
139
+ return;
140
+ }
141
+ let path = this._req.url;
142
+ //服务器根目录路径写法,链接转换
143
+ let _i = path.lastIndexOf("~");
144
+ if (_i >= 0) {
145
+ path = path.substr(_i + 1);
146
+ }
147
+ //处理参数
148
+ this._parseParams(path);
149
+ }
150
+ _addListener(event, listener) {
151
+ this._req.addListener(event, listener);
152
+ }
153
+ _parseParams(path) {
154
+ this._module = this._cfg.routs.onlyModule || this._cfg.routs.defaults.module;
155
+ this._controller = this._cfg.routs.defaults.controller;
156
+ this._action = this._cfg.routs.defaults.action;
157
+ this._suffix = null;
158
+ this._file_url = null;
159
+ this._params = {};
160
+ if (path == "/") {
161
+ return;
162
+ }
163
+ let firstQuoteIndex = path.indexOf("?");
164
+ let preQuoteStr = path;
165
+ if (firstQuoteIndex > 0) {
166
+ preQuoteStr = path.substring(0, firstQuoteIndex);
167
+ }
168
+ let lastDotIndex = preQuoteStr.lastIndexOf(".");
169
+ if (lastDotIndex > 0) {
170
+ let dotStr = preQuoteStr.substring(lastDotIndex + 1);
171
+ this._suffix = dotStr;
172
+ this._file_url = preQuoteStr;
173
+ return;
174
+ }
175
+ let quote_index = path.indexOf("?");
176
+ if (quote_index >= 0) {
177
+ let url = new url_1.URL(path);
178
+ url.searchParams.forEach((value, name, searchParams) => {
179
+ this._params[name] = value;
180
+ });
181
+ path = path.substring(0, quote_index);
182
+ }
183
+ let params = path.split("/");
184
+ let default_module = false;
185
+ if (this._cfg.routs.onlyModule) {
186
+ default_module = true;
187
+ }
188
+ if (params.length > 1 && params[1].length > 0) {
189
+ /**
190
+ * 如果是only模式,那么就不支持controller和module相同,
191
+ * 如果相同则认为是模块名,这样就可以同时支持,带模块的路径模式和非带模块的路径模式了
192
+ */
193
+ if (default_module
194
+ && params[1].toLowerCase() == this._cfg.routs.onlyModule.toLowerCase()) {
195
+ default_module = false;
196
+ }
197
+ if (default_module) {
198
+ this._controller = params[1];
199
+ }
200
+ else {
201
+ this._module = params[1];
202
+ }
203
+ }
204
+ if (params.length > 2 && params[2].length > 0) {
205
+ if (default_module) {
206
+ this._action = params[2];
207
+ }
208
+ else {
209
+ this._controller = params[2];
210
+ }
211
+ }
212
+ if (params.length > 3
213
+ && params[3].length > 0
214
+ && !default_module) {
215
+ this._action = params[3];
216
+ }
217
+ this._params = this._params || {};
218
+ return;
219
+ }
220
+ debugInfo() {
221
+ if (!this._cfg.debug) {
222
+ return;
223
+ }
224
+ let debuginfo = {
225
+ module: this._module,
226
+ controller: this._controller,
227
+ action: this._action,
228
+ suffix: this._suffix,
229
+ file_url: this._file_url,
230
+ params: this._params,
231
+ post: this.postData,
232
+ method: this._req.method.toLowerCase()
233
+ };
234
+ Log_1.GLog.info(debuginfo);
235
+ }
236
+ }
237
+ exports.Request = Request;
@@ -1,100 +1,100 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Response = void 0;
4
- const fs = require("fs");
5
- const mime = require("mime");
6
- const Log_1 = require("../../Logic/Log");
7
- class Response {
8
- _res = null;
9
- _cookie_prefix = "";
10
- _cfg = null;
11
- _create_time = -1;
12
- constructor(res, cfg) {
13
- this._cfg = cfg;
14
- this._res = res;
15
- this._cookie_prefix = this._cfg.cookie.prefix;
16
- this._init();
17
- }
18
- _init() {
19
- this._create_time = Date.now();
20
- }
21
- /**
22
- *
23
- * @param key
24
- * @param value
25
- * @param time 秒
26
- */
27
- setCookie(key, value, time) {
28
- key = this._cookie_prefix + key;
29
- if (time) {
30
- this._res.cookie(key, value, { maxAge: time * 1000, httpOnly: true });
31
- }
32
- else {
33
- this._res.cookie(key, value, { httpOnly: true });
34
- }
35
- }
36
- clearCookie(key) {
37
- this.setCookie(key, "", -1000);
38
- }
39
- redirect(path) {
40
- this._res.writeHead(302, { 'Location': path });
41
- this._res.end();
42
- }
43
- renderJson(data, origin) {
44
- this._res.json(data);
45
- this.debugInfo(data);
46
- }
47
- renderJson404(origin) {
48
- this._res.status(404).json();
49
- }
50
- renderJson500(origin) {
51
- this._res.status(500).json();
52
- this.debugInfo("500");
53
- }
54
- renderHtml(html) {
55
- this._res.send(html || "");
56
- }
57
- render404(html) {
58
- this._res.status(404).send(html || "没找到该页面");
59
- }
60
- render500(html) {
61
- this._res.status(500).send(html || "服务器内部错误500");
62
- }
63
- renderOptions(method, origin) {
64
- this._res.sendStatus(204);
65
- }
66
- renderFile(fullPath) {
67
- this._res.sendFile(fullPath);
68
- }
69
- downloadFile(fullPath) {
70
- let fileName = "";
71
- let quote_index = fullPath.indexOf("/");
72
- if (quote_index > 0) {
73
- fileName = fullPath.substring(quote_index + 1);
74
- }
75
- fs.stat(fullPath, (err, stats) => {
76
- if (!stats || stats.isDirectory()) {
77
- return this.render404("");
78
- }
79
- let size = stats.size;
80
- var f = fs.createReadStream(fullPath);
81
- this._res.writeHead(200, {
82
- 'Content-Type': mime.getType(fullPath) || 'application/octet-stream',
83
- 'Content-Disposition': 'attachment; filename=' + fileName,
84
- 'Content-Length': size
85
- });
86
- f.pipe(this._res);
87
- });
88
- }
89
- render304() {
90
- this._res.sendStatus(304);
91
- }
92
- debugInfo(data) {
93
- if (!this._cfg.debug) {
94
- return;
95
- }
96
- Log_1.GLog.info("dttime:" + (Date.now() - this._create_time).toLocaleString() + "ms");
97
- Log_1.GLog.info(data);
98
- }
99
- }
100
- exports.Response = Response;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Response = void 0;
4
+ const fs = require("fs");
5
+ const mime_1 = require("mime");
6
+ const Log_1 = require("../../Logic/Log");
7
+ class Response {
8
+ _res = null;
9
+ _cookie_prefix = "";
10
+ _cfg = null;
11
+ _create_time = -1;
12
+ constructor(res, cfg) {
13
+ this._cfg = cfg;
14
+ this._res = res;
15
+ this._cookie_prefix = this._cfg.cookie.prefix;
16
+ this._init();
17
+ }
18
+ _init() {
19
+ this._create_time = Date.now();
20
+ }
21
+ /**
22
+ *
23
+ * @param key
24
+ * @param value
25
+ * @param time 秒
26
+ */
27
+ setCookie(key, value, time) {
28
+ key = this._cookie_prefix + key;
29
+ if (time) {
30
+ this._res.cookie(key, value, { maxAge: time * 1000, httpOnly: true });
31
+ }
32
+ else {
33
+ this._res.cookie(key, value, { httpOnly: true });
34
+ }
35
+ }
36
+ clearCookie(key) {
37
+ this.setCookie(key, "", -1000);
38
+ }
39
+ redirect(path) {
40
+ this._res.writeHead(302, { 'Location': path });
41
+ this._res.end();
42
+ }
43
+ renderJson(data, origin) {
44
+ this._res.json(data);
45
+ this.debugInfo(data);
46
+ }
47
+ renderJson404(origin) {
48
+ this._res.status(404).json();
49
+ }
50
+ renderJson500(origin) {
51
+ this._res.status(500).json();
52
+ this.debugInfo("500");
53
+ }
54
+ renderHtml(html) {
55
+ this._res.send(html || "");
56
+ }
57
+ render404(html) {
58
+ this._res.status(404).send(html || "没找到该页面");
59
+ }
60
+ render500(html) {
61
+ this._res.status(500).send(html || "服务器内部错误500");
62
+ }
63
+ renderOptions(method, origin) {
64
+ this._res.sendStatus(204);
65
+ }
66
+ renderFile(fullPath) {
67
+ this._res.sendFile(fullPath);
68
+ }
69
+ downloadFile(fullPath) {
70
+ let fileName = "";
71
+ let quote_index = fullPath.indexOf("/");
72
+ if (quote_index > 0) {
73
+ fileName = fullPath.substring(quote_index + 1);
74
+ }
75
+ fs.stat(fullPath, (err, stats) => {
76
+ if (!stats || stats.isDirectory()) {
77
+ return this.render404("");
78
+ }
79
+ let size = stats.size;
80
+ var f = fs.createReadStream(fullPath);
81
+ this._res.writeHead(200, {
82
+ 'Content-Type': mime_1.default.getType(fullPath) || 'application/octet-stream',
83
+ 'Content-Disposition': 'attachment; filename=' + fileName,
84
+ 'Content-Length': size
85
+ });
86
+ f.pipe(this._res);
87
+ });
88
+ }
89
+ render304() {
90
+ this._res.sendStatus(304);
91
+ }
92
+ debugInfo(data) {
93
+ if (!this._cfg.debug) {
94
+ return;
95
+ }
96
+ Log_1.GLog.info("dttime:" + (Date.now() - this._create_time).toLocaleString() + "ms");
97
+ Log_1.GLog.info(data);
98
+ }
99
+ }
100
+ exports.Response = Response;