knight-server 1.0.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 (101) hide show
  1. package/Server.d.ts +39 -0
  2. package/Server.d.ts.map +1 -0
  3. package/Server.js +61 -0
  4. package/Server.js.map +1 -0
  5. package/base/AbstractModule.d.ts +25 -0
  6. package/base/AbstractModule.d.ts.map +1 -0
  7. package/base/AbstractModule.js +19 -0
  8. package/base/AbstractModule.js.map +1 -0
  9. package/base/AbstractObject.d.ts +22 -0
  10. package/base/AbstractObject.d.ts.map +1 -0
  11. package/base/AbstractObject.js +48 -0
  12. package/base/AbstractObject.js.map +1 -0
  13. package/base/AbstractRouter.d.ts +24 -0
  14. package/base/AbstractRouter.d.ts.map +1 -0
  15. package/base/AbstractRouter.js +26 -0
  16. package/base/AbstractRouter.js.map +1 -0
  17. package/base/index.d.ts +4 -0
  18. package/base/index.d.ts.map +1 -0
  19. package/base/index.js +20 -0
  20. package/base/index.js.map +1 -0
  21. package/index.d.ts +5 -0
  22. package/index.d.ts.map +1 -0
  23. package/index.js +46 -0
  24. package/index.js.map +1 -0
  25. package/module/database/DataBaseModule.d.ts +133 -0
  26. package/module/database/DataBaseModule.d.ts.map +1 -0
  27. package/module/database/DataBaseModule.js +359 -0
  28. package/module/database/DataBaseModule.js.map +1 -0
  29. package/module/database/index.d.ts +2 -0
  30. package/module/database/index.d.ts.map +1 -0
  31. package/module/database/index.js +18 -0
  32. package/module/database/index.js.map +1 -0
  33. package/module/http/HttpModule.d.ts +26 -0
  34. package/module/http/HttpModule.d.ts.map +1 -0
  35. package/module/http/HttpModule.js +52 -0
  36. package/module/http/HttpModule.js.map +1 -0
  37. package/module/http/HttpRouter.d.ts +34 -0
  38. package/module/http/HttpRouter.d.ts.map +1 -0
  39. package/module/http/HttpRouter.js +63 -0
  40. package/module/http/HttpRouter.js.map +1 -0
  41. package/module/http/index.d.ts +3 -0
  42. package/module/http/index.d.ts.map +1 -0
  43. package/module/http/index.js +19 -0
  44. package/module/http/index.js.map +1 -0
  45. package/module/index.d.ts +4 -0
  46. package/module/index.d.ts.map +1 -0
  47. package/module/index.js +20 -0
  48. package/module/index.js.map +1 -0
  49. package/module/websocket/WebSocketClient.d.ts +56 -0
  50. package/module/websocket/WebSocketClient.d.ts.map +1 -0
  51. package/module/websocket/WebSocketClient.js +142 -0
  52. package/module/websocket/WebSocketClient.js.map +1 -0
  53. package/module/websocket/WebSocketModule.d.ts +31 -0
  54. package/module/websocket/WebSocketModule.d.ts.map +1 -0
  55. package/module/websocket/WebSocketModule.js +100 -0
  56. package/module/websocket/WebSocketModule.js.map +1 -0
  57. package/module/websocket/WebSocketRouter.d.ts +32 -0
  58. package/module/websocket/WebSocketRouter.d.ts.map +1 -0
  59. package/module/websocket/WebSocketRouter.js +67 -0
  60. package/module/websocket/WebSocketRouter.js.map +1 -0
  61. package/module/websocket/index.d.ts +4 -0
  62. package/module/websocket/index.d.ts.map +1 -0
  63. package/module/websocket/index.js +20 -0
  64. package/module/websocket/index.js.map +1 -0
  65. package/package.json +19 -0
  66. package/test/MyRouter.d.ts +16 -0
  67. package/test/MyRouter.d.ts.map +1 -0
  68. package/test/MyRouter.js +49 -0
  69. package/test/MyRouter.js.map +1 -0
  70. package/test/WSRouter.d.ts +10 -0
  71. package/test/WSRouter.d.ts.map +1 -0
  72. package/test/WSRouter.js +33 -0
  73. package/test/WSRouter.js.map +1 -0
  74. package/test/index.d.ts +3 -0
  75. package/test/index.d.ts.map +1 -0
  76. package/test/index.js +19 -0
  77. package/test/index.js.map +1 -0
  78. package/utility/DatabaseUtility.d.ts +158 -0
  79. package/utility/DatabaseUtility.d.ts.map +1 -0
  80. package/utility/DatabaseUtility.js +903 -0
  81. package/utility/DatabaseUtility.js.map +1 -0
  82. package/utility/InterfaceUtility.d.ts +14 -0
  83. package/utility/InterfaceUtility.d.ts.map +1 -0
  84. package/utility/InterfaceUtility.js +3 -0
  85. package/utility/InterfaceUtility.js.map +1 -0
  86. package/utility/NetworkUtility.d.ts +80 -0
  87. package/utility/NetworkUtility.d.ts.map +1 -0
  88. package/utility/NetworkUtility.js +134 -0
  89. package/utility/NetworkUtility.js.map +1 -0
  90. package/utility/StringUtility.d.ts +46 -0
  91. package/utility/StringUtility.d.ts.map +1 -0
  92. package/utility/StringUtility.js +153 -0
  93. package/utility/StringUtility.js.map +1 -0
  94. package/utility/TimeUtility.d.ts +65 -0
  95. package/utility/TimeUtility.d.ts.map +1 -0
  96. package/utility/TimeUtility.js +220 -0
  97. package/utility/TimeUtility.js.map +1 -0
  98. package/utility/index.d.ts +6 -0
  99. package/utility/index.d.ts.map +1 -0
  100. package/utility/index.js +22 -0
  101. package/utility/index.js.map +1 -0
@@ -0,0 +1,359 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.DataBaseModule = void 0;
37
+ const MYSQL = __importStar(require("mysql2/promise"));
38
+ const base_1 = require("../../base");
39
+ const utility_1 = require("../../utility");
40
+ /** 数据库模块 */
41
+ class DataBaseModule extends base_1.AbstarctModule {
42
+ /** 构造函数 */
43
+ constructor(server, express) {
44
+ super(server, express);
45
+ }
46
+ async OnStart(serverHost, config) {
47
+ this.serverHost = serverHost;
48
+ this.config = config;
49
+ this.pool = MYSQL.createPool(config);
50
+ const connection = await this.pool.getConnection();
51
+ connection.release();
52
+ // 智能同步表格
53
+ const table = new utility_1.DatabaseUtility.SmartTable(this.pool);
54
+ const result = await table.syncAllFromDir(config.tableRelativePath);
55
+ if (!result.success) {
56
+ console.log(result.message);
57
+ }
58
+ this.logInfo(`初始化`);
59
+ }
60
+ async OnStop() {
61
+ await this.pool?.end();
62
+ }
63
+ OnDestroy() {
64
+ super.OnDestroy();
65
+ this.OnStop();
66
+ }
67
+ // ==================== 基础查询方法 ====================
68
+ /**
69
+ * 执行SQL查询(基础方法)
70
+ * @param sql SQL语句(支持 ? 占位符)
71
+ * @param params 参数数组
72
+ * @returns 查询结果
73
+ */
74
+ async executeQuery(sql, params = []) {
75
+ if (!this.pool) {
76
+ throw new Error('数据库连接池未初始化');
77
+ }
78
+ try {
79
+ const [rows, fields] = await this.pool.execute(sql, params);
80
+ return [rows, fields];
81
+ }
82
+ catch (error) {
83
+ console.error('SQL执行错误:', error);
84
+ throw error;
85
+ }
86
+ }
87
+ // ==================== 查询操作 ====================
88
+ /**
89
+ * 查询多条数据
90
+ * @param table 表名
91
+ * @param where 查询条件(可选)
92
+ * @param params 参数(可选)
93
+ */
94
+ async find(table, where, params = []) {
95
+ try {
96
+ const sql = where
97
+ ? `SELECT * FROM \`${table}\` WHERE ${where}`
98
+ : `SELECT * FROM \`${table}\``;
99
+ const [rows] = await this.executeQuery(sql, params);
100
+ return {
101
+ success: true,
102
+ data: rows,
103
+ raw: rows
104
+ };
105
+ }
106
+ catch (error) {
107
+ return {
108
+ success: false,
109
+ error: error instanceof Error ? error.message : String(error)
110
+ };
111
+ }
112
+ }
113
+ /**
114
+ * 查询单条数据
115
+ * @param table 表名
116
+ * @param where 查询条件
117
+ * @param params 参数
118
+ */
119
+ async findOne(table, where, params = []) {
120
+ try {
121
+ const sql = `SELECT * FROM \`${table}\` WHERE ${where} LIMIT 1`;
122
+ const [rows] = await this.executeQuery(sql, params);
123
+ return {
124
+ success: true,
125
+ item: rows[0],
126
+ data: rows,
127
+ raw: rows
128
+ };
129
+ }
130
+ catch (error) {
131
+ return {
132
+ success: false,
133
+ error: error instanceof Error ? error.message : String(error)
134
+ };
135
+ }
136
+ }
137
+ /**
138
+ * 根据ID查询
139
+ * @param table 表名
140
+ * @param id ID值
141
+ * @param idField ID字段名(默认 'id')
142
+ */
143
+ async findById(table, id, idField = 'id') {
144
+ return this.findOne(table, `\`${idField}\` = ?`, [id]);
145
+ }
146
+ // ==================== 插入操作 ====================
147
+ /**
148
+ * 插入单条数据
149
+ * @param table 表名
150
+ * @param data 要插入的数据对象
151
+ */
152
+ async insert(table, data) {
153
+ try {
154
+ const keys = Object.keys(data).map(key => `\`${key}\``).join(', ');
155
+ const placeholders = Object.keys(data).map(() => '?').join(', ');
156
+ const values = Object.values(data);
157
+ const sql = `INSERT INTO \`${table}\` (${keys}) VALUES (${placeholders})`;
158
+ const [result] = await this.executeQuery(sql, values);
159
+ return {
160
+ success: true,
161
+ insertId: result.insertId,
162
+ affectedRows: result.affectedRows
163
+ };
164
+ }
165
+ catch (error) {
166
+ return {
167
+ success: false,
168
+ error: error instanceof Error ? error.message : String(error)
169
+ };
170
+ }
171
+ }
172
+ /**
173
+ * 批量插入数据
174
+ * @param table 表名
175
+ * @param dataArray 数据对象数组
176
+ */
177
+ async insertBatch(table, dataArray) {
178
+ if (dataArray.length === 0) {
179
+ return { success: false, error: '没有数据可插入' };
180
+ }
181
+ try {
182
+ const keys = Object.keys(dataArray[0]).map(key => `\`${key}\``).join(', ');
183
+ const placeholders = dataArray.map(() => `(${Object.keys(dataArray[0]).map(() => '?').join(', ')})`).join(', ');
184
+ const values = dataArray.flatMap(obj => Object.values(obj));
185
+ const sql = `INSERT INTO \`${table}\` (${keys}) VALUES ${placeholders}`;
186
+ const [result] = await this.executeQuery(sql, values);
187
+ return {
188
+ success: true,
189
+ affectedRows: result.affectedRows,
190
+ insertId: result.insertId
191
+ };
192
+ }
193
+ catch (error) {
194
+ return {
195
+ success: false,
196
+ error: error instanceof Error ? error.message : String(error)
197
+ };
198
+ }
199
+ }
200
+ // ==================== 更新操作 ====================
201
+ /**
202
+ * 更新数据
203
+ * @param table 表名
204
+ * @param data 要更新的数据
205
+ * @param where 更新条件
206
+ * @param whereParams 条件参数
207
+ */
208
+ async update(table, data, where, whereParams = []) {
209
+ try {
210
+ const setClause = Object.keys(data).map(key => `\`${key}\` = ?`).join(', ');
211
+ const setValues = Object.values(data);
212
+ const params = [...setValues, ...whereParams];
213
+ const sql = `UPDATE \`${table}\` SET ${setClause} WHERE ${where}`;
214
+ const [result] = await this.executeQuery(sql, params);
215
+ return {
216
+ success: true,
217
+ affectedRows: result.affectedRows
218
+ };
219
+ }
220
+ catch (error) {
221
+ return {
222
+ success: false,
223
+ error: error instanceof Error ? error.message : String(error)
224
+ };
225
+ }
226
+ }
227
+ /**
228
+ * 根据ID更新
229
+ * @param table 表名
230
+ * @param id ID值
231
+ * @param data 更新数据
232
+ * @param idField ID字段名
233
+ */
234
+ async updateById(table, id, data, idField = 'id') {
235
+ return this.update(table, data, `\`${idField}\` = ?`, [id]);
236
+ }
237
+ // ==================== 删除操作 ====================
238
+ /**
239
+ * 删除数据
240
+ * @param table 表名
241
+ * @param where 删除条件
242
+ * @param params 条件参数
243
+ */
244
+ async delete(table, where, params = []) {
245
+ try {
246
+ const sql = `DELETE FROM \`${table}\` WHERE ${where}`;
247
+ const [result] = await this.executeQuery(sql, params);
248
+ return {
249
+ success: true,
250
+ affectedRows: result.affectedRows
251
+ };
252
+ }
253
+ catch (error) {
254
+ return {
255
+ success: false,
256
+ error: error instanceof Error ? error.message : String(error)
257
+ };
258
+ }
259
+ }
260
+ /**
261
+ * 根据ID删除
262
+ * @param table 表名
263
+ * @param id ID值
264
+ * @param idField ID字段名
265
+ */
266
+ async deleteById(table, id, idField = 'id') {
267
+ return this.delete(table, `\`${idField}\` = ?`, [id]);
268
+ }
269
+ // ==================== 高级查询 ====================
270
+ /**
271
+ * 分页查询
272
+ * @param table 表名
273
+ * @param page 页码(从1开始)
274
+ * @param pageSize 每页数量
275
+ * @param where 查询条件(可选)
276
+ * @param params 条件参数(可选)
277
+ * @param orderBy 排序(可选,如 'id DESC')
278
+ */
279
+ async paginate(table, page = 1, pageSize = 20, where, params = [], orderBy = 'id DESC') {
280
+ try {
281
+ const countSql = where
282
+ ? `SELECT COUNT(*) as total FROM \`${table}\` WHERE ${where}`
283
+ : `SELECT COUNT(*) as total FROM \`${table}\``;
284
+ const [countResult] = await this.executeQuery(countSql, where ? params : []);
285
+ const total = countResult[0]?.total || 0;
286
+ const offset = (page - 1) * pageSize;
287
+ const dataSql = where
288
+ ? `SELECT * FROM \`${table}\` WHERE ${where} ORDER BY ${orderBy} LIMIT ${offset}, ${pageSize}`
289
+ : `SELECT * FROM \`${table}\` ORDER BY ${orderBy} LIMIT ${offset}, ${pageSize}`;
290
+ const [rows] = await this.executeQuery(dataSql, where ? params : []);
291
+ return {
292
+ success: true,
293
+ data: rows,
294
+ total,
295
+ page,
296
+ pageSize
297
+ };
298
+ }
299
+ catch (error) {
300
+ return {
301
+ success: false,
302
+ error: error instanceof Error ? error.message : String(error)
303
+ };
304
+ }
305
+ }
306
+ /**
307
+ * 执行自定义SQL(完全控制)
308
+ * @param sql SQL语句
309
+ * @param params 参数
310
+ */
311
+ async query(sql, params = []) {
312
+ try {
313
+ const [rows] = await this.executeQuery(sql, params);
314
+ return {
315
+ success: true,
316
+ data: rows,
317
+ raw: rows
318
+ };
319
+ }
320
+ catch (error) {
321
+ return {
322
+ success: false,
323
+ error: error instanceof Error ? error.message : String(error)
324
+ };
325
+ }
326
+ }
327
+ // ==================== 事务操作 ====================
328
+ /**
329
+ * 执行事务
330
+ * @param callback 事务回调函数,返回结果或Promise
331
+ */
332
+ async transaction(callback) {
333
+ if (!this.pool) {
334
+ return { success: false, error: '数据库连接池未初始化' };
335
+ }
336
+ const connection = await this.pool.getConnection();
337
+ try {
338
+ await connection.beginTransaction();
339
+ const result = await callback(connection);
340
+ await connection.commit();
341
+ return {
342
+ success: true,
343
+ data: result
344
+ };
345
+ }
346
+ catch (error) {
347
+ await connection.rollback();
348
+ return {
349
+ success: false,
350
+ error: error instanceof Error ? error.message : String(error)
351
+ };
352
+ }
353
+ finally {
354
+ connection.release();
355
+ }
356
+ }
357
+ }
358
+ exports.DataBaseModule = DataBaseModule;
359
+ //# sourceMappingURL=DataBaseModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataBaseModule.js","sourceRoot":"","sources":["../../../src/module/database/DataBaseModule.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from "./DataBaseModule";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/module/database/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./DataBaseModule"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/module/database/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC"}
@@ -0,0 +1,26 @@
1
+ import { Express } from "express-serve-static-core";
2
+ import { AbstarctModule } from "../../base";
3
+ import { HttpRouter } from "./HttpRouter";
4
+ import { InterfaceUtility } from "../../utility";
5
+ import { Server } from "../../Server";
6
+ /** HTTP模块 */
7
+ export declare class HttpModule extends AbstarctModule<HttpConfig> {
8
+ protected config: HttpConfig;
9
+ /** HTTP服务实例 */
10
+ private httpServer;
11
+ /** 路由池 */
12
+ private readonly routers;
13
+ /** 构造函数 */
14
+ constructor(server: Server, express: Express);
15
+ OnStart(serverHost: string, config: HttpConfig): Promise<void>;
16
+ OnStop(): Promise<void>;
17
+ /** 注册 */
18
+ OnRegist(routerType: InterfaceUtility.IType<HttpRouter>): boolean;
19
+ OnDestroy(): void;
20
+ }
21
+ /** HTTP配置接口 */
22
+ export interface HttpConfig {
23
+ /** 端口号 */
24
+ port: number;
25
+ }
26
+ //# sourceMappingURL=HttpModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpModule.d.ts","sourceRoot":"","sources":["../../../src/module/http/HttpModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAGpD,OAAO,EAAE,cAAc,EAAiB,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,aAAa;AACb,qBAAa,UAAW,SAAQ,cAAc,CAAC,UAAU,CAAC;IAEtD,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC;IAC7B,eAAe;IACf,OAAO,CAAC,UAAU,CAAc;IAChC,UAAU;IACV,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAElD,WAAW;gBACQ,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAKtC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAa9D,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAKpC,SAAS;IACF,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,OAAO;IAYjE,SAAS,IAAI,IAAI;CAK3B;AACD,eAAe;AACf,MAAM,WAAW,UAAU;IAIvB,UAAU;IACV,IAAI,EAAE,MAAM,CAAC;CAChB"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HttpModule = void 0;
4
+ const base_1 = require("../../base");
5
+ const HttpRouter_1 = require("./HttpRouter");
6
+ /** HTTP模块 */
7
+ class HttpModule extends base_1.AbstarctModule {
8
+ /** 构造函数 */
9
+ constructor(server, express) {
10
+ super(server, express);
11
+ this.routers = new Map();
12
+ }
13
+ async OnStart(serverHost, config) {
14
+ this.serverHost = serverHost;
15
+ this.config = config;
16
+ this.httpServer = this.express.listen(config.port);
17
+ this.logInfo(`🌏 http://${serverHost}:${config.port}`);
18
+ // 注册路由
19
+ const routerRegistry = base_1.RouteRegistry.filter(routerType => routerType.prototype instanceof HttpRouter_1.HttpRouter);
20
+ for (const routerType of routerRegistry) {
21
+ this.OnRegist(routerType);
22
+ }
23
+ }
24
+ async OnStop() {
25
+ this.routers.clear();
26
+ this.httpServer?.close();
27
+ }
28
+ /** 注册 */
29
+ OnRegist(routerType) {
30
+ if (null == routerType) {
31
+ this.logError("路由类型为空");
32
+ return false;
33
+ }
34
+ const name = routerType.name;
35
+ const path = '/' + name.toLowerCase();
36
+ if (this.routers.has(path)) {
37
+ this.logError(`重复注册${path}路由}`);
38
+ return false;
39
+ }
40
+ const router = new routerType(this.server);
41
+ this.routers.set(path, router);
42
+ this.express.all(path, router.OnHandler.bind(router));
43
+ this.log(`路由 ${name} - http://${this.serverHost}:${this.config.port}${path}`);
44
+ return true;
45
+ }
46
+ OnDestroy() {
47
+ super.OnDestroy();
48
+ this.OnStop();
49
+ }
50
+ }
51
+ exports.HttpModule = HttpModule;
52
+ //# sourceMappingURL=HttpModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpModule.js","sourceRoot":"","sources":["../../../src/module/http/HttpModule.ts"],"names":[],"mappings":";;;AAGA,qCAA2D;AAC3D,6CAA0C;AAI1C,aAAa;AACb,MAAa,UAAW,SAAQ,qBAA0B;IAQtD,WAAW;IACX,YAAmB,MAAc,EAAE,OAAgB;QAE/C,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;IACjD,CAAC;IACM,KAAK,CAAC,OAAO,CAAC,UAAkB,EAAE,MAAkB;QAEvD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,CAAC,aAAa,UAAU,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACvD,OAAO;QACP,MAAM,cAAc,GAAG,oBAAa,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,YAAY,uBAAU,CAAC,CAAC;QACtG,KAAK,MAAM,UAAU,IAAI,cAAc,EACvC,CAAC;YACG,IAAI,CAAC,QAAQ,CAAC,UAAgD,CAAC,CAAC;QACpE,CAAC;IACL,CAAC;IACM,KAAK,CAAC,MAAM;QAEf,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC;IACD,SAAS;IACF,QAAQ,CAAC,UAA8C;QAE1D,IAAI,IAAI,IAAI,UAAU,EAAE,CAAC;YAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAAC,OAAO,KAAK,CAAC;QAAC,CAAC;QAClE,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAC7B,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACtC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC;YAAC,OAAO,KAAK,CAAC;QAAC,CAAC;QAC9E,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,aAAa,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;QAC9E,OAAO,IAAI,CAAC;IAChB,CAAC;IACM,SAAS;QAEZ,KAAK,CAAC,SAAS,EAAE,CAAC;QAClB,IAAI,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC;CACJ;AAlDD,gCAkDC"}
@@ -0,0 +1,34 @@
1
+ import { Request, Response } from "express";
2
+ import { AbstractRouter } from "../../base";
3
+ import { Server } from "../../Server";
4
+ /** 抽象HTTP路由 */
5
+ export declare abstract class HttpRouter extends AbstractRouter {
6
+ /** 构造函数 */
7
+ constructor(server: Server);
8
+ /** 鉴权处理 */
9
+ abstract OnCheck(request: Request, response: Response): Promise<boolean>;
10
+ /** 逻辑处理 */
11
+ OnHandler(request: Request, response: Response): Promise<void>;
12
+ /** Get方法逻辑处理函数 */
13
+ protected abstract OnGetHandler(server: Server, request: HttpRequest, response: HttpResponse): Promise<void>;
14
+ /** Post方法逻辑处理函数 */
15
+ protected abstract OnPostHandler(server: Server, request: HttpRequest, response: HttpResponse): Promise<void>;
16
+ /** Put方法逻辑处理函数 */
17
+ protected abstract OnPutHandler(server: Server, request: HttpRequest, response: HttpResponse): Promise<void>;
18
+ /** Delete方法逻辑处理函数 */
19
+ protected abstract OnDeleteHandler(server: Server, request: HttpRequest, response: HttpResponse): Promise<void>;
20
+ /** Options方法逻辑处理函数 */
21
+ protected abstract OnOptionsHandler(server: Server, request: HttpRequest, response: HttpResponse): Promise<void>;
22
+ /** Head方法逻辑处理函数 */
23
+ protected abstract OnHeadHandler(server: Server, request: HttpRequest, response: HttpResponse): Promise<void>;
24
+ /** Patch方法逻辑处理函数 */
25
+ protected abstract OnPatchHandler(server: Server, request: HttpRequest, response: HttpResponse): Promise<void>;
26
+ /** Trace方法逻辑处理函数 */
27
+ protected abstract OnTraceHandler(server: Server, request: HttpRequest, response: HttpResponse): Promise<void>;
28
+ OnDestroy(): void;
29
+ }
30
+ /** HTTP请求数据 */
31
+ export type HttpRequest = Request;
32
+ /** HTTP响应数据 */
33
+ export type HttpResponse = Response;
34
+ //# sourceMappingURL=HttpRouter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpRouter.d.ts","sourceRoot":"","sources":["../../../src/module/http/HttpRouter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,eAAe;AACf,8BAAsB,UAAW,SAAQ,cAAc;IAEnD,WAAW;gBACQ,MAAM,EAAE,MAAM;IAIjC,WAAW;aACK,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAC/E,WAAW;IACE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B3E,kBAAkB;IAClB,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAC5G,mBAAmB;IACnB,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAC7G,kBAAkB;IAClB,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAC5G,qBAAqB;IACrB,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAC/G,sBAAsB;IACtB,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAChH,mBAAmB;IACnB,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAC7G,oBAAoB;IACpB,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAC9G,oBAAoB;IACpB,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAEvG,SAAS,IAAI,IAAI;CAI3B;AACD,eAAe;AACf,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC;AAClC,eAAe;AACf,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HttpRouter = void 0;
4
+ const base_1 = require("../../base");
5
+ const utility_1 = require("../../utility");
6
+ /** 抽象HTTP路由 */
7
+ class HttpRouter extends base_1.AbstractRouter {
8
+ /** 构造函数 */
9
+ constructor(server) {
10
+ super(server);
11
+ }
12
+ /** 逻辑处理 */
13
+ async OnHandler(request, response) {
14
+ if (null == request || utility_1.StringUtility.empty(request.method) || null == response) {
15
+ return;
16
+ }
17
+ // 请求头鉴权处理 - TODO:后续放到业务逻辑中处理
18
+ // const authorization = request.headers.authorization;
19
+ // if (!authorization || !authorization.startsWith("Bearer "))
20
+ // {
21
+ // response.status(ResponseCode.UNAUTHORIZED).send("未认证,请先登录");
22
+ // return false;
23
+ // }
24
+ const check = await this.OnCheck(request, response);
25
+ if (!check) {
26
+ response.status(utility_1.NetworkUtility.ResponseCode.UNAUTHORIZED).send("令牌无效,请先登录");
27
+ return;
28
+ }
29
+ // 根据请求中的方法进行路由分发
30
+ switch (request.method.toLowerCase()) {
31
+ case utility_1.NetworkUtility.E_ProtocalType.Get:
32
+ this.OnGetHandler(this.server, request, response);
33
+ break;
34
+ case utility_1.NetworkUtility.E_ProtocalType.Post:
35
+ this.OnPostHandler(this.server, request, response);
36
+ break;
37
+ case utility_1.NetworkUtility.E_ProtocalType.Put:
38
+ this.OnPutHandler(this.server, request, response);
39
+ break;
40
+ case utility_1.NetworkUtility.E_ProtocalType.Delete:
41
+ this.OnDeleteHandler(this.server, request, response);
42
+ break;
43
+ case utility_1.NetworkUtility.E_ProtocalType.Options:
44
+ this.OnOptionsHandler(this.server, request, response);
45
+ break;
46
+ case utility_1.NetworkUtility.E_ProtocalType.Head:
47
+ this.OnHeadHandler(this.server, request, response);
48
+ break;
49
+ case utility_1.NetworkUtility.E_ProtocalType.Patch:
50
+ this.OnPatchHandler(this.server, request, response);
51
+ break;
52
+ case utility_1.NetworkUtility.E_ProtocalType.Trace:
53
+ this.OnTraceHandler(this.server, request, response);
54
+ break;
55
+ default: return;
56
+ }
57
+ }
58
+ OnDestroy() {
59
+ super.OnDestroy();
60
+ }
61
+ }
62
+ exports.HttpRouter = HttpRouter;
63
+ //# sourceMappingURL=HttpRouter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpRouter.js","sourceRoot":"","sources":["../../../src/module/http/HttpRouter.ts"],"names":[],"mappings":";;;AACA,qCAA4C;AAC5C,2CAA8D;AAG9D,eAAe;AACf,MAAsB,UAAW,SAAQ,qBAAc;IAEnD,WAAW;IACX,YAAmB,MAAc;QAE7B,KAAK,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC;IAGD,WAAW;IACJ,KAAK,CAAC,SAAS,CAAC,OAAgB,EAAE,QAAkB;QAEvD,IAAI,IAAI,IAAI,OAAO,IAAI,uBAAa,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,QAAQ,EAAE,CAAC;YAAC,OAAO;QAAC,CAAC;QAC3F,6BAA6B;QAC7B,uDAAuD;QACvD,8DAA8D;QAC9D,IAAI;QACJ,mEAAmE;QACnE,oBAAoB;QACpB,IAAI;QAEJ,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK,EAAE,CAAC;YAAC,QAAQ,CAAC,MAAM,CAAC,wBAAc,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QACpG,iBAAiB;QACjB,QAAQ,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,EACpC,CAAC;YACG,KAAK,wBAAc,CAAC,cAAc,CAAC,GAAG;gBAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAAC,MAAM;YACjG,KAAK,wBAAc,CAAC,cAAc,CAAC,IAAI;gBAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAAC,MAAM;YACnG,KAAK,wBAAc,CAAC,cAAc,CAAC,GAAG;gBAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAAC,MAAM;YACjG,KAAK,wBAAc,CAAC,cAAc,CAAC,MAAM;gBAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAAC,MAAM;YACvG,KAAK,wBAAc,CAAC,cAAc,CAAC,OAAO;gBAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAAC,MAAM;YACzG,KAAK,wBAAc,CAAC,cAAc,CAAC,IAAI;gBAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAAC,MAAM;YACnG,KAAK,wBAAc,CAAC,cAAc,CAAC,KAAK;gBAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAAC,MAAM;YACrG,KAAK,wBAAc,CAAC,cAAc,CAAC,KAAK;gBAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAAC,MAAM;YACrG,OAAO,CAAC,CAAC,OAAO;QACpB,CAAC;IACL,CAAC;IAkBM,SAAS;QAEZ,KAAK,CAAC,SAAS,EAAE,CAAC;IACtB,CAAC;CACJ;AA1DD,gCA0DC"}
@@ -0,0 +1,3 @@
1
+ export * from "./HttpModule";
2
+ export * from "./HttpRouter";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/module/http/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./HttpModule"), exports);
18
+ __exportStar(require("./HttpRouter"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/module/http/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,+CAA6B"}
@@ -0,0 +1,4 @@
1
+ export * from "./database";
2
+ export * from "./http";
3
+ export * from "./websocket";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/module/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC"}