ming_node 2.2.5 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
package/index.js CHANGED
@@ -1,9 +1,9 @@
1
1
  /**
2
- * File : MemoryBaseRpcApi.js
2
+ * File : index.js
3
3
  * By : Minglie
4
4
  * QQ: 934031452
5
5
  * Date :2021.12.01
6
- * version :2.2.5
6
+ * version :2.4.0
7
7
  */
8
8
  var http = require('http');
9
9
  var https = require('https');
@@ -42,14 +42,18 @@
42
42
  M._globle_cacheMap = {}
43
43
  //全局对象缓存
44
44
  M._globle_lib_cacheMap={}
45
- M._node_lib_path=process.env.NODE_PATH;
45
+ //全局插件地址缓存
46
+ M._globle_plugin_url_cacheMap={};
47
+ //全局插件
48
+ M._globle_plugin=new Set();
49
+ M._node_lib_path=process.cwd()+"/.ming_node_cacke";
46
50
  //远程静态资源路径
47
51
  M.remoteStaticPath = "https://minglie.gitee.io/mingpage/static";
48
52
  M.remoteStaticPathEnable = true;
49
53
  //代理服务器配置
50
54
  M.proxyHost = "http://127.0.0.1:8888"
51
55
  M.proxyHost = "";
52
-
56
+ M.IO={}
53
57
  M.setModule=function (key,module){
54
58
  M._moduleMap.set(key,module);
55
59
  }
@@ -57,6 +61,16 @@
57
61
  M._moduleMap.get(key);
58
62
  }
59
63
 
64
+ M.getGloblePlugin=(pluginKey)=>{
65
+ let plugin=null;
66
+ M._globle_plugin.forEach(u=>{
67
+ if(u.key==pluginKey){
68
+ plugin=u;
69
+ }
70
+ })
71
+ return plugin;
72
+ }
73
+
60
74
 
61
75
  /**
62
76
  * ----------------------客户端START--------------------------------------------
@@ -74,7 +88,7 @@
74
88
  }
75
89
  return Object.assign(obj, c1);
76
90
  }
77
-
91
+
78
92
  //将对象追加到url上
79
93
  privateObj.appendDataToUrl = function (url, data) {
80
94
  let getData = "";
@@ -90,10 +104,10 @@
90
104
  let r = url + getData;
91
105
  return r;
92
106
  }
93
-
107
+
94
108
  M.get = function (url, callback, data, headers) {
95
109
  if (typeof callback == "function") {
96
-
110
+
97
111
  } else {
98
112
  headers = data || {};
99
113
  data = callback;
@@ -139,7 +153,7 @@ M.get = function (url, callback, data, headers) {
139
153
  if (url.startsWith("https")) {
140
154
  reqHttp = https;
141
155
  }
142
-
156
+
143
157
  return new Promise((resolve, reject) => {
144
158
  options = M.httpBefore(options);
145
159
  if (options == false) {
@@ -172,21 +186,21 @@ M.get = function (url, callback, data, headers) {
172
186
  req.on('error', function (err) {
173
187
  reject(err);
174
188
  console.error(err);
175
-
189
+
176
190
  });
177
191
  req.end();
178
192
  })
179
193
  }
180
194
  M._request = function (url, callback, data, headers,methed) {
181
195
  if (typeof callback == "function") {
182
-
196
+
183
197
  } else {
184
198
  headers = data || {};
185
199
  data = callback;
186
200
  callback = () => {
187
201
  };
188
202
  }
189
-
203
+
190
204
  url = privateObj.appendDataToUrl(url, M.reqComQueryparams);
191
205
  var html = '';
192
206
  var urlObj = url_module.parse(url)
@@ -224,7 +238,7 @@ M._request = function (url, callback, data, headers,methed) {
224
238
  if (url.startsWith("https")) {
225
239
  reqHttp = https;
226
240
  }
227
-
241
+
228
242
  return new Promise((resolve, reject) => {
229
243
  var req = reqHttp.request(options, function (res) {
230
244
  options = M.httpBefore(options);
@@ -254,9 +268,9 @@ M._request = function (url, callback, data, headers,methed) {
254
268
  M.httpEnd(html);
255
269
  resolve(html);
256
270
  });
257
-
271
+
258
272
  });
259
-
273
+
260
274
  req.on('error', function (err) {
261
275
  console.error(err);
262
276
  });
@@ -269,7 +283,7 @@ M.delete=(url, callback, data, headers)=>M._request(url, callback, data, headers
269
283
  M.put=(url, callback, data, headers)=>M._request(url, callback, data, headers,"PUT")
270
284
  M.postJson = function (url, callback, data, headers) {
271
285
  if (typeof callback == "function") {
272
-
286
+
273
287
  } else {
274
288
  headers = data || {};
275
289
  data = callback;
@@ -307,9 +321,9 @@ M.postJson = function (url, callback, data, headers) {
307
321
  if (url.startsWith("https")) {
308
322
  reqHttp = https;
309
323
  }
310
-
324
+
311
325
  return new Promise((resolve, reject) => {
312
-
326
+
313
327
  var req = reqHttp.request(options, function (res) {
314
328
  options = M.httpBefore(options);
315
329
  if (options == false) {
@@ -338,9 +352,9 @@ M.postJson = function (url, callback, data, headers) {
338
352
  M.httpEnd(html);
339
353
  resolve(html);
340
354
  });
341
-
355
+
342
356
  });
343
-
357
+
344
358
  req.on('error', function (err) {
345
359
  console.error(err);
346
360
  });
@@ -397,7 +411,7 @@ M.request.put=M.put;
397
411
  });
398
412
  return promise;
399
413
  }
400
-
414
+
401
415
  M.import=async function (url,callback){
402
416
  if(M._globle_lib_cacheMap[url]){
403
417
  return M._globle_lib_cacheMap[url];
@@ -412,9 +426,9 @@ M.request.put=M.put;
412
426
  M._globle_lib_cacheMap[url]=r;
413
427
  return r
414
428
  }
415
-
429
+
416
430
  }
417
-
431
+
418
432
  /**
419
433
  *下载图片
420
434
  */
@@ -463,23 +477,23 @@ M.request.put=M.put;
463
477
  });
464
478
  req.end();
465
479
  }
466
-
480
+
467
481
  /**
468
482
  *打印结果前钩子
469
483
  */
470
484
  M.beforeLogData = function (res, desc) {
471
485
  console.log("-----" + desc + "-----" + res.req.path + "-------------");
472
486
  }
473
-
474
-
487
+
488
+
475
489
  /**
476
490
  *打印结果后钩子
477
491
  */
478
492
  M.afterLogData = function () {
479
-
493
+
480
494
  console.log("--END")
481
495
  }
482
-
496
+
483
497
  /**
484
498
  *简化get请求
485
499
  */
@@ -502,9 +516,9 @@ M.request.put=M.put;
502
516
  }, data
503
517
  );
504
518
  }
505
-
519
+
506
520
  }
507
-
521
+
508
522
  /**
509
523
  *简化post请求
510
524
  */
@@ -516,7 +530,7 @@ M.request.put=M.put;
516
530
  }, data
517
531
  );
518
532
  }
519
-
533
+
520
534
  M.postJson0 = function (url, data) {
521
535
  M.postJson(
522
536
  M.host + url,
@@ -525,28 +539,28 @@ M.request.put=M.put;
525
539
  }, data
526
540
  );
527
541
  }
528
-
542
+
529
543
  M.template = function (str) {
530
544
  return eval("`" + str + "`");
531
545
  }
532
-
533
-
546
+
547
+
534
548
  /**
535
549
  * ----------------------客户端END--------------------------------------------
536
550
  */
537
-
538
-
551
+
552
+
539
553
  /**
540
554
  * ----------------------数据持久化读写START--------------------------------------------
541
555
  */
542
-
556
+
543
557
  /**
544
558
  *递归创建文件夹
545
559
  */
546
560
  M.mkdir = function (dirpath, dirname) {
547
561
  //判断是否是第一次调用
548
562
  if (typeof dirname === "undefined") {
549
-
563
+
550
564
  if (dirpath.indexOf(".") > 0) {
551
565
  dirpath = path.dirname(dirpath);
552
566
  }
@@ -589,7 +603,7 @@ M.request.put=M.put;
589
603
  });
590
604
  });
591
605
  }
592
-
606
+
593
607
  privateObj.checkDirectory = function (src, dst, callback) {
594
608
  fs.access(dst, fs.constants.F_OK, (err) => {
595
609
  if (err) {
@@ -600,7 +614,7 @@ M.request.put=M.put;
600
614
  }
601
615
  });
602
616
  };
603
-
617
+
604
618
  M.readFile = function (file) {
605
619
  if (fs.existsSync(file)) {
606
620
  return fs.readFileSync(file, "utf-8");
@@ -625,7 +639,7 @@ M.request.put=M.put;
625
639
  M.writeObjToFile = function (file, obj) {
626
640
  M.writeFile(file, JSON.stringify(obj));
627
641
  }
628
-
642
+
629
643
  M.addObjToFile = function (file, obj) {
630
644
  try {
631
645
  var d = M.getObjByFile(file);
@@ -653,7 +667,7 @@ M.request.put=M.put;
653
667
  }
654
668
  M.writeObjToFile(file, d);
655
669
  }
656
-
670
+
657
671
  M.deleteObjByPropFile = function (file, o) {
658
672
  let o_key = Object.keys(o)[0];
659
673
  let o_val = o[o_key]
@@ -669,7 +683,7 @@ M.request.put=M.put;
669
683
  M.writeObjToFile(file, d);
670
684
  return d_num;
671
685
  }
672
-
686
+
673
687
  M.updateObjByIdFile = function (file, obj) {
674
688
  var d = M.getObjByFile(file);
675
689
  for (let i = 0; i < d.length; i++) {
@@ -777,10 +791,10 @@ M.request.put=M.put;
777
791
  } catch (e) {
778
792
  preObj = {};
779
793
  }
780
-
794
+
781
795
  M.writeObjToFile(M.map_path, Object.assign(preObj, a));
782
796
  }
783
-
797
+
784
798
  M.getAttribute = function (k) {
785
799
  return M.getObjByFile(M.map_path)[k];
786
800
  }
@@ -811,14 +825,14 @@ M.request.put=M.put;
811
825
  });
812
826
  } )
813
827
  }
814
-
815
-
828
+
829
+
816
830
  M.readCsvLine =async function (file, callback) {
817
831
  return M.readLine(file, function (line) {
818
832
  callback(line.replace("\r", "").split(/(?<!\"[^,]+),(?![^,]+\")/));
819
833
  })
820
834
  }
821
-
835
+
822
836
  M.getFileNameByUrl=function (url){
823
837
  let split= url.split("/");
824
838
  return split[split.length-1]
@@ -829,7 +843,7 @@ M.getFileList = function (path) {
829
843
  function readFile(path, filesList, targetObj) {
830
844
  files = fs.readdirSync(path);//需要用到同步读取
831
845
  files.forEach(walk);
832
-
846
+
833
847
  function walk(file) {
834
848
  states = fs.statSync(path + '/' + file);
835
849
  if (states.isDirectory()) {
@@ -841,7 +855,7 @@ M.getFileList = function (path) {
841
855
  item = {name: file, children: [], value: path + '/' + file};
842
856
  filesList.push(item);
843
857
  }
844
-
858
+
845
859
  readFile(path + '/' + file, filesList, item);
846
860
  } else {
847
861
  //创建一个对象保存信息
@@ -849,7 +863,7 @@ M.getFileList = function (path) {
849
863
  obj.size = states.size;//文件大小,以字节为单位
850
864
  obj.name = file;//文件名
851
865
  obj.path = path + '/' + file; //文件绝对路径
852
-
866
+
853
867
  if (targetObj["children"]) {
854
868
  var item = {name: file, value: obj.path}
855
869
  targetObj["children"].push(item);
@@ -860,7 +874,7 @@ M.getFileList = function (path) {
860
874
  }
861
875
  }
862
876
  }
863
-
877
+
864
878
  var filesList = [];
865
879
  var targetObj = {};
866
880
  readFile(path, filesList, targetObj);
@@ -939,8 +953,8 @@ M.log = function (...params) {
939
953
  if (M.log_file_enable) M.appendFile(M.log_path, r);
940
954
  }
941
955
  }
942
-
943
-
956
+
957
+
944
958
  M.getSqlite = function (dbName) {
945
959
  if (M.sqlite) {
946
960
  return M.sqlite;
@@ -978,7 +992,7 @@ M.log = function (...params) {
978
992
  M.sqlite = Db;
979
993
  return Db;
980
994
  }
981
-
995
+
982
996
  ///////////////////////////////
983
997
 
984
998
 
@@ -1089,12 +1103,12 @@ M.getMongoDB = function (dbConfig) {
1089
1103
  var MongoDB=require('mongodb');
1090
1104
  var MongoClient =MongoDB.MongoClient;
1091
1105
  const ObjectID = MongoDB.ObjectID;
1092
-
1106
+
1093
1107
  var Config={
1094
1108
  dbUrl: dbConfig.dbUrl|| 'mongodb://localhost:27017/',
1095
1109
  dbName: dbConfig.dbName|| 'miapi'
1096
1110
  };
1097
-
1111
+
1098
1112
  class MingMongoClient{
1099
1113
  static connect(){
1100
1114
  return new Promise((resolve,reject)=>{
@@ -1113,7 +1127,7 @@ M.getMongoDB = function (dbConfig) {
1113
1127
  }
1114
1128
  })
1115
1129
  }
1116
-
1130
+
1117
1131
  static find(collectionName,json){
1118
1132
  if(!json){
1119
1133
  json=collectionName
@@ -1129,7 +1143,7 @@ M.getMongoDB = function (dbConfig) {
1129
1143
  }
1130
1144
  resolve(docs);
1131
1145
  })
1132
-
1146
+
1133
1147
  })
1134
1148
  })
1135
1149
  }
@@ -1164,14 +1178,14 @@ M.getMongoDB = function (dbConfig) {
1164
1178
  if(err){
1165
1179
  reject(err);
1166
1180
  }else{
1167
-
1181
+
1168
1182
  resolve(result);
1169
1183
  }
1170
1184
  })
1171
1185
  })
1172
1186
  })
1173
1187
  }
1174
-
1188
+
1175
1189
  static insertMany(collectionName,json){
1176
1190
  if(!json){
1177
1191
  json=collectionName
@@ -1183,14 +1197,14 @@ M.getMongoDB = function (dbConfig) {
1183
1197
  if(err){
1184
1198
  reject(err);
1185
1199
  }else{
1186
-
1200
+
1187
1201
  resolve(result);
1188
1202
  }
1189
1203
  })
1190
1204
  })
1191
1205
  })
1192
1206
  }
1193
-
1207
+
1194
1208
  static remove(collectionName,json){
1195
1209
  if(!json){
1196
1210
  json=collectionName
@@ -1202,14 +1216,14 @@ M.getMongoDB = function (dbConfig) {
1202
1216
  if(err){
1203
1217
  reject(err);
1204
1218
  }else{
1205
-
1219
+
1206
1220
  resolve(result);
1207
1221
  }
1208
1222
  })
1209
1223
  })
1210
1224
  })
1211
1225
  }
1212
-
1226
+
1213
1227
  static getById(collectionName,id){
1214
1228
  if(!id){
1215
1229
  id=collectionName
@@ -1230,7 +1244,7 @@ M.getMongoDB = function (dbConfig) {
1230
1244
  })
1231
1245
  })
1232
1246
  }
1233
-
1247
+
1234
1248
  }
1235
1249
  MingMongoClient.ObjectID=(id)=> new ObjectID(id)
1236
1250
  let Db=MingMongoClient;
@@ -1239,9 +1253,9 @@ M.getMongoDB = function (dbConfig) {
1239
1253
  M.mongoDb=Db;
1240
1254
  return Db;
1241
1255
  }
1242
-
1243
-
1244
-
1256
+
1257
+
1258
+
1245
1259
  /**
1246
1260
  * ----------------------Sql CRUD START-------------------------------------------
1247
1261
  */
@@ -1259,7 +1273,7 @@ M.getMongoDB = function (dbConfig) {
1259
1273
  let sql = "insert into " + tableName + fields + " values " + values;
1260
1274
  return sql;
1261
1275
  }
1262
-
1276
+
1263
1277
  M.getDeleteObjSql = function (tableName, obj) {
1264
1278
  var fields = [];
1265
1279
  for (let field in obj) {
@@ -1269,7 +1283,7 @@ M.getMongoDB = function (dbConfig) {
1269
1283
  sql = sql.replace(/,/g, " and ")
1270
1284
  return sql;
1271
1285
  }
1272
-
1286
+
1273
1287
  M.getUpdateObjSql = function (tableName, obj, caseObj) {
1274
1288
  var fields = [];
1275
1289
  for (let field in obj) {
@@ -1286,11 +1300,11 @@ M.getMongoDB = function (dbConfig) {
1286
1300
  }
1287
1301
  sql = `update ${tableName} set ${fields.map(u => u + "='" + obj[u] + "'")} where ${caseObjfields.map(u => u + "='" + caseObj[u] + "'").join(" and ")}`;
1288
1302
  }
1289
-
1303
+
1290
1304
  return sql;
1291
1305
  }
1292
-
1293
-
1306
+
1307
+
1294
1308
  M.getSelectObjSql = function (tableName, obj) {
1295
1309
  var fields = [];
1296
1310
  for (let field in obj) {
@@ -1300,17 +1314,17 @@ M.getMongoDB = function (dbConfig) {
1300
1314
  sql = sql.replace(/,/g, " and ")
1301
1315
  return sql;
1302
1316
  }
1303
-
1317
+
1304
1318
  /**
1305
1319
  * ----------------------Sql CRUD START-------------------------------------------
1306
1320
  */
1307
-
1308
-
1321
+
1322
+
1309
1323
  /**
1310
1324
  * ----------------------数据持久化读写END--------------------------------------------
1311
1325
  */
1312
-
1313
-
1326
+
1327
+
1314
1328
  /**
1315
1329
  * ----------------------服务器端START--------------------------------------------
1316
1330
  */
@@ -1367,7 +1381,7 @@ M.failResult=(msg,code,d)=>{
1367
1381
  }
1368
1382
  return result;
1369
1383
  }
1370
-
1384
+
1371
1385
  /**
1372
1386
  *获取驼峰式的对象
1373
1387
  */
@@ -1378,7 +1392,7 @@ M.failResult=(msg,code,d)=>{
1378
1392
  }
1379
1393
  return result;
1380
1394
  }
1381
-
1395
+
1382
1396
  M.randomStr = function () {
1383
1397
  return (Math.random().toString(36) + new Date().getTime()).slice(2);
1384
1398
  }
@@ -1416,7 +1430,7 @@ M.urlParse = function (url) {
1416
1430
  }
1417
1431
  return s
1418
1432
  };
1419
-
1433
+
1420
1434
  /**
1421
1435
  * 异常处理钩子
1422
1436
  * @param e
@@ -1428,9 +1442,9 @@ M.urlParse = function (url) {
1428
1442
  }
1429
1443
  return true;
1430
1444
  }
1431
-
1432
-
1433
-
1445
+
1446
+
1447
+
1434
1448
  M.server = function () {
1435
1449
  var G = this; /*全局变量,也就是M*/
1436
1450
  //静态资源路径
@@ -1481,7 +1495,7 @@ M.urlParse = function (url) {
1481
1495
  }
1482
1496
  return isRest;
1483
1497
  }
1484
-
1498
+
1485
1499
  req.ip = req.headers['x-forwarded-for'] ||
1486
1500
  req.connection.remoteAddress ||
1487
1501
  req.socket.remoteAddress ||
@@ -1557,7 +1571,7 @@ M.urlParse = function (url) {
1557
1571
  res.end();
1558
1572
  G._end(req,text);
1559
1573
  }
1560
-
1574
+
1561
1575
  res.render = async function (url) {
1562
1576
  res.alreadySend = true;
1563
1577
  let text="";
@@ -1705,12 +1719,12 @@ M.urlParse = function (url) {
1705
1719
  M["_gloable_exception_handle"](e,req,res);
1706
1720
  }
1707
1721
  }
1708
-
1709
-
1722
+
1723
+
1710
1724
  app.begin = function (callback) {
1711
1725
  G._begin = callback;
1712
1726
  }
1713
-
1727
+
1714
1728
  app.end = function (callback) {
1715
1729
  G._end = callback;
1716
1730
  }
@@ -1732,6 +1746,7 @@ M.urlParse = function (url) {
1732
1746
  } else {
1733
1747
  plugin.install(app, args);
1734
1748
  }
1749
+ M._globle_plugin.add(plugin);
1735
1750
  plugin.installed = true;
1736
1751
  }else {
1737
1752
  if (Array.isArray(url)) {
@@ -1746,6 +1761,17 @@ M.urlParse = function (url) {
1746
1761
  }
1747
1762
  return app;
1748
1763
  }
1764
+
1765
+ app.installPlugin=async function (pluginUrl,constructorParams,pluginParams){
1766
+ if(M._globle_plugin_url_cacheMap[pluginUrl]){
1767
+ return
1768
+ }
1769
+ M._globle_plugin_url_cacheMap[pluginUrl]=pluginUrl;
1770
+ const Plugin= await M.require(pluginUrl);
1771
+ const plugin= new Plugin(constructorParams);
1772
+ app.use(plugin,pluginParams)
1773
+ }
1774
+
1749
1775
  /**
1750
1776
  * 注册get请求
1751
1777
  */
@@ -1756,7 +1782,7 @@ M.urlParse = function (url) {
1756
1782
  url = url.substr(0, url.indexOf(":"));
1757
1783
  G._rest[url] = realUrl;
1758
1784
  }
1759
-
1785
+
1760
1786
  G._get[url] = callback;
1761
1787
  }
1762
1788
  /**
@@ -1803,8 +1829,8 @@ M.urlParse = function (url) {
1803
1829
  }
1804
1830
  G._mapping[url] = callback;
1805
1831
  }
1806
-
1807
-
1832
+
1833
+
1808
1834
  M.formatUrl = function (url) {
1809
1835
  if (!url.endsWith('/')) {
1810
1836
  url = url + '/';
@@ -1821,7 +1847,7 @@ M.urlParse = function (url) {
1821
1847
  req.url = url;
1822
1848
  app(req, res);
1823
1849
  }
1824
-
1850
+
1825
1851
  /**
1826
1852
  *重定向
1827
1853
  */
@@ -1829,12 +1855,12 @@ M.urlParse = function (url) {
1829
1855
  res.writeHead(302, {'Content-Type': 'text/html; charset=utf-8', 'Location': url});
1830
1856
  res.end();
1831
1857
  }
1832
-
1858
+
1833
1859
  app.set = function (k, v) {
1834
1860
  M["_" + k] = v;
1835
1861
  }
1836
-
1837
-
1862
+
1863
+
1838
1864
  //全局异常钩子
1839
1865
  app.set("gloable_exception_handle",(err,req,res)=>{
1840
1866
  console.error(err.stack)
@@ -1843,12 +1869,12 @@ M.urlParse = function (url) {
1843
1869
  res.send(M.result(err.message,false,-1));
1844
1870
  }
1845
1871
  })
1846
-
1872
+
1847
1873
  //render异常钩子
1848
1874
  app.set("render_exception_handle",(err,req,res)=>{
1849
1875
  console.error(err.stack)
1850
1876
  })
1851
-
1877
+
1852
1878
  //没有对应接口时的处理器
1853
1879
  app.set("no_router_handle",(req,res)=>{
1854
1880
  res.end('no router')
@@ -1877,19 +1903,19 @@ M.urlParse = function (url) {
1877
1903
  res.end();
1878
1904
  })
1879
1905
 
1880
-
1881
-
1882
1906
  app.listen = function (port) {
1883
1907
  const server= http.createServer(app).listen(port);
1884
1908
  console.log("listen on port:" + port);
1885
1909
  return server;
1886
1910
  }
1911
+
1912
+ global.app=app;
1887
1913
  return app;
1888
1914
  }
1889
1915
  M["_gloable_exception_handle"]=(err)=>{
1890
1916
  console.error(err)
1891
1917
  }
1892
-
1918
+
1893
1919
  //异常捕获
1894
1920
  process.on('uncaughtException', function (err) {
1895
1921
  M["_gloable_exception_handle"](err,M.req,M.res);
@@ -1898,8 +1924,8 @@ M.urlParse = function (url) {
1898
1924
  process.on('unhandledRejection',function(err,promise){
1899
1925
  M["_gloable_exception_handle"](err,M.req,M.res);
1900
1926
  });
1901
-
1902
-
1927
+
1928
+
1903
1929
  /**
1904
1930
  * 代理服务器start
1905
1931
  */
@@ -1930,7 +1956,7 @@ M.urlParse = function (url) {
1930
1956
  })
1931
1957
  })
1932
1958
  }
1933
-
1959
+
1934
1960
  M.axios = function (axiosConfig) {
1935
1961
  axiosConfig.headers.host = "";
1936
1962
  var urlObj = url_module.parse(axiosConfig.url)
@@ -1960,7 +1986,7 @@ M.urlParse = function (url) {
1960
1986
  M.httpEnd(html);
1961
1987
  resolve(html);
1962
1988
  });
1963
-
1989
+
1964
1990
  });
1965
1991
  req.on('error', function (err) {
1966
1992
  console.error(err);
@@ -1994,7 +2020,7 @@ privateObj.dealUseServer = async function (req, res) {
1994
2020
  let fileName = pathname.replace("/", "");
1995
2021
  //获取文件的后缀名
1996
2022
  var extname = path.extname(pathname);
1997
-
2023
+
1998
2024
  if (fileName.startsWith("__default_")) {
1999
2025
  res.setHeader("Access-Control-Allow-Origin", "*");
2000
2026
  res.setHeader("Access-Control-Allow-Headers", "X-Requested-With");
@@ -2009,7 +2035,7 @@ privateObj.dealUseServer = async function (req, res) {
2009
2035
  if (!res.alreadySend) await res.renderUrl(M.remoteStaticPath + pathname)
2010
2036
  return;
2011
2037
  }
2012
-
2038
+
2013
2039
  if (pathname != '/favicon.ico') { /*过滤请求favicon.ico*/
2014
2040
  //文件操作获取 static下面的index.html
2015
2041
  fs.readFile(staticPath + '/' + pathname, function (err, data) {
@@ -2033,7 +2059,7 @@ privateObj.dealUseServer = async function (req, res) {
2033
2059
  res.end();
2034
2060
  }
2035
2061
  }
2036
-
2062
+
2037
2063
  /*SSE SERVER */
2038
2064
  M.sseServer = function () {
2039
2065
  //sse 心跳
@@ -2134,12 +2160,12 @@ privateObj.dealUseServer = async function (req, res) {
2134
2160
  }
2135
2161
  return app;
2136
2162
  }
2137
-
2163
+
2138
2164
  /**
2139
2165
  * ----------------------服务器端END--------------------------------------------
2140
2166
  */
2141
-
2142
-
2167
+
2168
+
2143
2169
  /**
2144
2170
  * ----------------------其他工具函数START--------------------------------------------
2145
2171
  */
@@ -2149,11 +2175,11 @@ privateObj.dealUseServer = async function (req, res) {
2149
2175
  if (err || stderr) console.error(err, stderr);
2150
2176
  reslove(stdout);
2151
2177
  });
2152
-
2178
+
2153
2179
  })
2154
2180
  return promise;
2155
2181
  }
2156
-
2182
+
2157
2183
  M.getMyIp = function () {
2158
2184
  var interfaces = require('os').networkInterfaces();
2159
2185
  for (var devName in interfaces) {
@@ -2166,17 +2192,17 @@ privateObj.dealUseServer = async function (req, res) {
2166
2192
  }
2167
2193
  }
2168
2194
  }
2169
-
2195
+
2170
2196
  /**
2171
2197
  *对象转JSON key不用引号括起来,因兼容性不好,所以去掉
2172
2198
  */
2173
-
2199
+
2174
2200
  /**
2175
2201
  M.JSOM_Stringify=function(obj){
2176
2202
  return JSON.stringify(obj).replace(/"(\w+)"(\s*:\s*)/gis, '$1$2');
2177
2203
  }
2178
2204
  */
2179
-
2205
+
2180
2206
  M.sleep = function (numberMillis) {
2181
2207
  var now = new Date();
2182
2208
  var exitTime = now.getTime() + numberMillis;
@@ -2198,7 +2224,7 @@ M.delayMs=async function (ms){
2198
2224
  /**
2199
2225
  * ----------------------其他工具函数END--------------------------------------------
2200
2226
  */
2201
-
2227
+
2202
2228
  /**
2203
2229
  * 静态资源对应表
2204
2230
  */
@@ -2716,11 +2742,11 @@ M.delayMs=async function (ms){
2716
2742
  ".conf": "text/conf",
2717
2743
  ".sql": "text/sql"
2718
2744
  }
2719
-
2745
+
2720
2746
  M.test = function () {
2721
2747
  console.log(privateObj.staticMime[".jssson"] || "aa")
2722
2748
  }
2723
-
2749
+
2724
2750
  M.getRemoteCacheByUrl = async function (url) {
2725
2751
  if (url in M._globle_cacheMap) {
2726
2752
  return M._globle_cacheMap[url];
@@ -2735,7 +2761,7 @@ M.delayMs=async function (ms){
2735
2761
  M._globle_cacheMap[url] = text;
2736
2762
  return text;
2737
2763
  }
2738
-
2764
+
2739
2765
  M.init = function () {
2740
2766
  /***
2741
2767
  * 下划线命名转为驼峰命名
@@ -2747,7 +2773,7 @@ M.delayMs=async function (ms){
2747
2773
  });
2748
2774
  return str;
2749
2775
  }
2750
-
2776
+
2751
2777
  /***
2752
2778
  * 驼峰命名转下划线
2753
2779
  */
@@ -2756,7 +2782,7 @@ M.delayMs=async function (ms){
2756
2782
  str = this.replace(/([A-Z])/g, "_$1").toLowerCase();
2757
2783
  return str;
2758
2784
  }
2759
-
2785
+
2760
2786
  //首字母变大写
2761
2787
  String.prototype.firstChartoUpper = function () {
2762
2788
  return this.replace(/^([a-z])/g, function (word) {
@@ -2790,9 +2816,12 @@ M.delayMs=async function (ms){
2790
2816
  }
2791
2817
  return fmt;
2792
2818
  }
2793
-
2794
-
2819
+
2820
+
2795
2821
  }
2796
2822
  M.init();
2797
-
2823
+
2824
+ global.M=M;
2825
+ global.MIO=M.IO;
2826
+
2798
2827
  module.exports = M;