mm_mysql 1.6.9 → 1.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 (4) hide show
  1. package/config.json +1 -1
  2. package/package.json +4 -3
  3. package/sql.js +67 -10
  4. package/test.js +163 -160
package/config.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "host": "localhost",
3
3
  "port": 3306,
4
4
  "user": "root",
5
- "password": "asd123",
5
+ "password": "asd159357",
6
6
  "database": "mm",
7
7
  "multipleStatements": true
8
8
  }
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
- {
1
+ {
2
2
  "name": "mm_mysql",
3
- "version": "1.6.9",
3
+ "version": "1.7.0",
4
4
  "description": "这是超级美眉mysql帮助函数模块,用于便捷操作mysql,使用await方式,可以避免嵌套函数",
5
5
  "main": "index.js",
6
6
  "scripts": {
7
- "test": "node test.js"
7
+ "test": "node test.js",
8
+ "dev": "nodemon test.js"
8
9
  },
9
10
  "repository": {
10
11
  "type": "git",
package/sql.js CHANGED
@@ -138,6 +138,8 @@ class Sql {
138
138
  "count_ret": "count_ret"
139
139
  }
140
140
  };
141
+
142
+ this.like = false;
141
143
  }
142
144
  }
143
145
 
@@ -318,8 +320,7 @@ Sql.prototype.getCountSql = async function(where, sort, view) {
318
320
  * @param {String} sort 排序方式
319
321
  * @return {Promise|Object} 查询到的内容列表和符合条件总数
320
322
  */
321
- Sql.prototype.groupMath = async function(where, groupby, view, sort, method) {
322
- var where = this.toWhere(where, false);
323
+ Sql.prototype.groupMathSql = async function(where, groupby, view, sort, method) {
323
324
  if (!view) {
324
325
  view = "*"
325
326
  }
@@ -350,7 +351,8 @@ Sql.prototype.groupMath = async function(where, groupby, view, sort, method) {
350
351
  sql += " limit " + start + ',' + this.size;
351
352
  }
352
353
  return await this.run(sql);
353
- };
354
+ }
355
+
354
356
 
355
357
  /**
356
358
  * @description 分组求平均值
@@ -360,8 +362,8 @@ Sql.prototype.groupMath = async function(where, groupby, view, sort, method) {
360
362
  * @param {String} sort 排序方式
361
363
  * @return {Promise|Object} 查询到的内容列表和符合条件总数
362
364
  */
363
- Sql.prototype.groupAvg = async function(where, groupby, view, sort) {
364
- return await this.groupMath(where, groupby, view, sort, "AVG");
365
+ Sql.prototype.groupAvgSql = async function(where, groupby, view, sort) {
366
+ return await this.groupMathSql(where, groupby, view, sort, "AVG");
365
367
  };
366
368
 
367
369
  /**
@@ -372,8 +374,8 @@ Sql.prototype.groupAvg = async function(where, groupby, view, sort) {
372
374
  * @param {String} sort 排序方式
373
375
  * @return {Promise|Object} 查询到的内容列表和符合条件总数
374
376
  */
375
- Sql.prototype.groupSum = async function(where, groupby, view, sort) {
376
- return await this.groupMath(where, groupby, view, sort, "SUM");
377
+ Sql.prototype.groupSumSql = async function(where, groupby, view, sort) {
378
+ return await this.groupMathSql(where, groupby, view, sort, "SUM");
377
379
  };
378
380
 
379
381
  /**
@@ -383,8 +385,57 @@ Sql.prototype.groupSum = async function(where, groupby, view, sort) {
383
385
  * @param {String} view 返回的字段
384
386
  * @return {Promise|Object} 查询到的内容列表和符合条件总数
385
387
  */
386
- Sql.prototype.groupCount = async function(where, groupby, view, sort) {
387
- return await this.groupMath(where, groupby, view, sort, "COUNT");
388
+ Sql.prototype.groupCountSql = async function(where, groupby, view, sort) {
389
+ return await this.groupMathSql(where, groupby, view, sort, "COUNT");
390
+ };
391
+
392
+
393
+ /**
394
+ * @description 统计学
395
+ * @param {Object} query 查询条件
396
+ * @param {String} groupby 分组的字段
397
+ * @param {String} view 返回的字段
398
+ * @param {String} sort 排序方式
399
+ * @return {Promise|Object} 查询到的内容列表和符合条件总数
400
+ */
401
+ Sql.prototype.groupMath = async function(query, groupby, view, sort, method) {
402
+ var where = this.toWhere(query, this.like);
403
+ return await this.groupMathSql(where, groupby, view, sort, method);
404
+ };
405
+
406
+ /**
407
+ * @description 分组求平均值
408
+ * @param {Object} query 查询条件
409
+ * @param {String} groupby 分组的字段
410
+ * @param {String} view 返回的字段
411
+ * @param {String} sort 排序方式
412
+ * @return {Promise|Object} 查询到的内容列表和符合条件总数
413
+ */
414
+ Sql.prototype.groupAvg = async function(query, groupby, view, sort) {
415
+ return await this.groupMath(query, groupby, view, sort, "AVG");
416
+ };
417
+
418
+ /**
419
+ * @description 分组合计数值
420
+ * @param {Object} query 查询条件
421
+ * @param {String} groupby 分组的字段
422
+ * @param {String} view 返回的字段
423
+ * @param {String} sort 排序方式
424
+ * @return {Promise|Object} 查询到的内容列表和符合条件总数
425
+ */
426
+ Sql.prototype.groupSum = async function(query, groupby, view, sort) {
427
+ return await this.groupMath(query, groupby, view, sort, "SUM");
428
+ };
429
+
430
+ /**
431
+ * @description 分组合计不同条数
432
+ * @param {Object} query 查询条件
433
+ * @param {String} groupby 分组的字段
434
+ * @param {String} view 返回的字段
435
+ * @return {Promise|Object} 查询到的内容列表和符合条件总数
436
+ */
437
+ Sql.prototype.groupCount = async function(query, groupby, view, sort) {
438
+ return await this.groupMath(query, groupby, view, sort, "COUNT");
388
439
  };
389
440
 
390
441
  /* === sql语句拼接函数 === */
@@ -396,6 +447,9 @@ Sql.prototype.groupCount = async function(where, groupby, view, sort) {
396
447
  */
397
448
  Sql.prototype.toWhere = function(obj, like) {
398
449
  var where = "";
450
+ if (like === undefined) {
451
+ like = this.like;
452
+ }
399
453
  if (like) {
400
454
  for (var k in obj) {
401
455
  var val = obj[k];
@@ -832,7 +886,7 @@ Sql.prototype.model = function(model) {
832
886
  * @param {Boolean} like 是否like匹配
833
887
  * @return {Promise|Array} 查询结果
834
888
  */
835
- Sql.prototype.getObj = async function(query, sort, view, like = false) {
889
+ Sql.prototype.getObj = async function(query, sort, view, like) {
836
890
  this.page = 1;
837
891
  this.size = 1;
838
892
  var key = this.key;
@@ -841,6 +895,9 @@ Sql.prototype.getObj = async function(query, sort, view, like = false) {
841
895
  view += "," + this.escapeId(key);
842
896
  }
843
897
  }
898
+ if (like === undefined) {
899
+ like = this.like;
900
+ }
844
901
  var sql = this.toGetSql(query, sort, view, like);
845
902
  var list = await this.run(sql);
846
903
  if (list.length > 0) {
package/test.js CHANGED
@@ -1,47 +1,47 @@
1
1
  const Mysql = require('./index.js').Mysql;
2
2
 
3
- var sql = new Mysql();
4
- sql.setConfig({
5
- multipleStatements: true
6
- });
7
- sql.open();
8
-
9
- // var tpl = {
10
- // "query": {
11
- // "state_min": "`state` >= '{0}'",
12
- // "state_max": "`state` <= '{0}'",
13
- // "vip_min": "`vip` >= '{0}'",
14
- // "vip_max": "`vip` <= '{0}'",
15
- // "gm_min": "`gm` >= '{0}'",
16
- // "gm_max": "`gm` <= '{0}'",
17
- // "mc_min": "`mc` >= '{0}'",
18
- // "mc_max": "`mc` <= '{0}'",
19
- // "create_time_min": "`create_time` >= '{0}'",
20
- // "create_time_max": "`create_time` <= '{0}'",
21
- // "login_time_min": "`login_time` >= '{0}'",
22
- // "login_time_max": "`login_time` <= '{0}'",
23
- // "salt": "`salt` like '%{0}%'",
24
- // "invite_code": "`invite_code` like '%{0}%'",
25
- // "phone": "`phone` like '%{0}%'",
26
- // "username": "`username` like '%{0}%'",
27
- // "nickname": "`nickname` like '%{0}%'",
28
- // "password": "`password` like '%{0}%'",
29
- // "email": "`email` like '%{0}%'",
30
- // "user_group": "`user_group` like '%{0}%'",
31
- // "user_admin": "`user_admin` like '%{0}%'",
32
- // "login_ip": "`login_ip` like '%{0}%'",
33
- // "signature": "`signature` like '%{0}%'",
34
- // "avatar": "`avatar` like '%{0}%'",
35
- // "friends": "`friends` like '%{0}%'",
36
- // "admin_group": "`admin_group` like '%{0}%'"
37
- // },
38
- // "update": {
39
- // "state_add": "`state` = `state` + '{0}'",
40
- // "vip_add": "`vip` = `vip` + '{0}'",
41
- // "gm_add": "`gm` = `gm` + '{0}'",
42
- // "mc_add": "`mc` = `mc` + '{0}'"
43
- // }
44
- // };
3
+ // var sql = new Mysql();
4
+ // sql.setConfig({
5
+ // multipleStatements: true
6
+ // });
7
+ // sql.open();
8
+
9
+ var tpl = {
10
+ "query": {
11
+ "state_min": "`state` >= '{0}'",
12
+ "state_max": "`state` <= '{0}'",
13
+ "vip_min": "`vip` >= '{0}'",
14
+ "vip_max": "`vip` <= '{0}'",
15
+ "gm_min": "`gm` >= '{0}'",
16
+ "gm_max": "`gm` <= '{0}'",
17
+ "mc_min": "`mc` >= '{0}'",
18
+ "mc_max": "`mc` <= '{0}'",
19
+ "create_time_min": "`create_time` >= '{0}'",
20
+ "create_time_max": "`create_time` <= '{0}'",
21
+ "login_time_min": "`login_time` >= '{0}'",
22
+ "login_time_max": "`login_time` <= '{0}'",
23
+ "salt": "`salt` like '%{0}%'",
24
+ "invite_code": "`invite_code` like '%{0}%'",
25
+ "phone": "`phone` like '%{0}%'",
26
+ "username": "`username` like '%{0}%'",
27
+ "nickname": "`nickname` like '%{0}%'",
28
+ "password": "`password` like '%{0}%'",
29
+ "email": "`email` like '%{0}%'",
30
+ "user_group": "`user_group` like '%{0}%'",
31
+ "user_admin": "`user_admin` like '%{0}%'",
32
+ "login_ip": "`login_ip` like '%{0}%'",
33
+ "signature": "`signature` like '%{0}%'",
34
+ "avatar": "`avatar` like '%{0}%'",
35
+ "friends": "`friends` like '%{0}%'",
36
+ "admin_group": "`admin_group` like '%{0}%'"
37
+ },
38
+ "update": {
39
+ "state_add": "`state` = `state` + '{0}'",
40
+ "vip_add": "`vip` = `vip` + '{0}'",
41
+ "gm_add": "`gm` = `gm` + '{0}'",
42
+ "mc_add": "`mc` = `mc` + '{0}'"
43
+ }
44
+ };
45
45
 
46
46
  // // 测试模板修改
47
47
  // async function test_tpl_set() {
@@ -68,137 +68,140 @@ sql.open();
68
68
  // }
69
69
  // test_tpl_set();
70
70
 
71
- // // 测试模板查询
72
- // async function test_tpl_get() {
71
+ // 测试模板查询
72
+ async function test_tpl_get() {
73
+ var sql = new Mysql();
74
+ sql.open();
75
+ db = sql.db();
76
+ var num = 0;
77
+ db.table = 'user_account';
78
+ var query = {
79
+ gm_min: 2,
80
+ username: 'ad%m'
81
+ };
82
+ db.page = 1;
83
+ db.size = 5;
84
+ var query_str = db.tpl_query(query, tpl.query);
85
+ ret = await db.getCountSql(query_str, "`user_id` desc", "*");
86
+ console.log('查询结果', ret);
87
+ console.log('SQL语句', db.sql);
88
+
89
+ ret = await db.groupSumSql(query_str, "mc", "gm");
90
+ console.log('求和查询结果', ret);
91
+ }
92
+ test_tpl_get();
93
+
94
+ // async function addField() {
73
95
  // var sql = new Mysql();
74
96
  // sql.open();
75
97
  // db = sql.db();
76
98
  // var num = 0;
77
- // db.table = 'user_account';
78
- // var query = {
79
- // gm: 5,
80
- // username: 'ad%m'
81
- // };
82
- // db.page = 1;
83
- // db.size = 5;
84
- // var query_str = db.tpl_query(query, tpl.query);
85
- // ret = await db.getSql(query_str, "`user_id` desc", "*");
86
- // console.log('查询结果', ret);
87
- // console.log('SQL语句', db.sql);
88
- // }
89
- // test_tpl_get();
99
+ // db.table = 'test';
100
+ // // num = await db.field_del('set6');
101
+ // // num = await db.field_add('set6', 'str');
102
+ // var bl = await db.addTable('test', 'uid', 'int', true, '测试表');
103
+ // console.log("创建表:" + num);
104
+ // if (bl < 0) {
105
+ // console.log("SQL:" + db.sql);
106
+ // }
107
+ // // num = await db.field_add("uid", 'int', 0, true, true, true);
108
+ // // console.log("uid结果:" + num);
109
+ // // if (num < 0) {
110
+ // // console.log("SQL:" + db.sql);
111
+ // // }
90
112
 
91
- async function addField() {
92
- var sql = new Mysql();
93
- sql.open();
94
- db = sql.db();
95
- var num = 0;
96
- db.table = 'test';
97
- // num = await db.field_del('set6');
98
- // num = await db.field_add('set6', 'str');
99
- var bl = await db.addTable('test', 'uid', 'int', true, '测试表');
100
- console.log("创建表:" + num);
101
- if (bl < 0) {
102
- console.log("SQL:" + db.sql);
103
- }
104
- // num = await db.field_add("uid", 'int', 0, true, true, true);
105
- // console.log("uid结果:" + num);
106
- // if (num < 0) {
107
- // console.log("SQL:" + db.sql);
108
- // }
109
-
110
- num = await db.field_add("name", 'varchar(18)', '', true);
111
- console.log("name结果:" + num);
112
- if (num < 0) {
113
- console.log("SQL:" + db.sql);
114
- }
113
+ // num = await db.field_add("name", 'varchar(18)', '', true);
114
+ // console.log("name结果:" + num);
115
+ // if (num < 0) {
116
+ // console.log("SQL:" + db.sql);
117
+ // }
115
118
 
116
- num = await db.field_add("username", 'varchar(18)', '', true);
117
- console.log("username结果:" + num);
118
- if (num < 0) {
119
- console.log("SQL:" + db.sql);
120
- }
119
+ // num = await db.field_add("username", 'varchar(18)', '', true);
120
+ // console.log("username结果:" + num);
121
+ // if (num < 0) {
122
+ // console.log("SQL:" + db.sql);
123
+ // }
121
124
 
122
- num = await db.field_add("password", 'string', '', true);
123
- console.log("password结果:" + num);
124
- if (num < 0) {
125
- console.log("SQL:" + db.sql);
126
- }
125
+ // num = await db.field_add("password", 'string', '', true);
126
+ // console.log("password结果:" + num);
127
+ // if (num < 0) {
128
+ // console.log("SQL:" + db.sql);
129
+ // }
127
130
 
128
- num = await db.field_add("email", 'varchar', null);
129
- console.log("email结果:" + num);
130
- if (num < 0) {
131
- console.log("SQL:" + db.sql);
132
- }
131
+ // num = await db.field_add("email", 'varchar', null);
132
+ // console.log("email结果:" + num);
133
+ // if (num < 0) {
134
+ // console.log("SQL:" + db.sql);
135
+ // }
133
136
 
134
- num = await db.field_add("age", 'smallint', 0);
135
- console.log("age结果:" + num);
136
- if (num < 0) {
137
- console.log("SQL:" + db.sql);
138
- }
137
+ // num = await db.field_add("age", 'smallint', 0);
138
+ // console.log("age结果:" + num);
139
+ // if (num < 0) {
140
+ // console.log("SQL:" + db.sql);
141
+ // }
139
142
 
140
- num = await db.field_add("sex", 'tinyint', 0);
141
- console.log("sex结果:" + num);
142
- if (num < 0) {
143
- console.log("SQL:" + db.sql);
144
- }
143
+ // num = await db.field_add("sex", 'tinyint', 0);
144
+ // console.log("sex结果:" + num);
145
+ // if (num < 0) {
146
+ // console.log("SQL:" + db.sql);
147
+ // }
145
148
 
146
- num = await db.field_add("create_time", 'timestamp', null, true, true);
147
- console.log("create_time结果:" + num);
148
- if (num < 0) {
149
- console.log("SQL:" + db.sql);
150
- }
149
+ // num = await db.field_add("create_time", 'timestamp', null, true, true);
150
+ // console.log("create_time结果:" + num);
151
+ // if (num < 0) {
152
+ // console.log("SQL:" + db.sql);
153
+ // }
151
154
 
152
- num = await db.field_add("update_time", 'timestamp', null, true, true);
153
- console.log("update_time结果:" + num);
154
- if (num < 0) {
155
- console.log("SQL:" + db.sql);
156
- }
155
+ // num = await db.field_add("update_time", 'timestamp', null, true, true);
156
+ // console.log("update_time结果:" + num);
157
+ // if (num < 0) {
158
+ // console.log("SQL:" + db.sql);
159
+ // }
157
160
 
158
- num = await db.field_add("last_time", 'timestamp');
159
- console.log("last_time结果:" + num);
160
- if (num < 0) {
161
- console.log("SQL:" + db.sql);
162
- }
161
+ // num = await db.field_add("last_time", 'timestamp');
162
+ // console.log("last_time结果:" + num);
163
+ // if (num < 0) {
164
+ // console.log("SQL:" + db.sql);
165
+ // }
163
166
 
164
- num = await db.field_add("birthday", 'date', '2020-06-28', true);
165
- console.log("birthday结果:" + num);
166
- if (num < 0) {
167
- console.log("SQL:" + db.sql);
168
- }
167
+ // num = await db.field_add("birthday", 'date', '2020-06-28', true);
168
+ // console.log("birthday结果:" + num);
169
+ // if (num < 0) {
170
+ // console.log("SQL:" + db.sql);
171
+ // }
169
172
 
170
- num = await db.field_add("note", 'text', '123123', false);
171
- console.log("note结果:" + num);
172
- if (num < 0) {
173
- console.log("SQL:" + db.sql);
174
- }
173
+ // num = await db.field_add("note", 'text', '123123', false);
174
+ // console.log("note结果:" + num);
175
+ // if (num < 0) {
176
+ // console.log("SQL:" + db.sql);
177
+ // }
175
178
 
176
- num = await db.field_add("content", 'longtext', '123123', false);
177
- console.log("content结果:" + num);
178
- if (num < 0) {
179
- console.log("SQL:" + db.sql);
180
- }
179
+ // num = await db.field_add("content", 'longtext', '123123', false);
180
+ // console.log("content结果:" + num);
181
+ // if (num < 0) {
182
+ // console.log("SQL:" + db.sql);
183
+ // }
181
184
 
182
- num = await db.field_add("cycle", 'time', null, true);
183
- console.log("cycle结果:" + num);
184
- if (num < 0) {
185
- console.log("SQL:" + db.sql);
186
- }
185
+ // num = await db.field_add("cycle", 'time', null, true);
186
+ // console.log("cycle结果:" + num);
187
+ // if (num < 0) {
188
+ // console.log("SQL:" + db.sql);
189
+ // }
187
190
 
188
- num = await db.field_add("money", 'double', 0);
189
- console.log("money结果:" + num);
190
- if (num < 0) {
191
- console.log("SQL:" + db.sql);
192
- }
191
+ // num = await db.field_add("money", 'double', 0);
192
+ // console.log("money结果:" + num);
193
+ // if (num < 0) {
194
+ // console.log("SQL:" + db.sql);
195
+ // }
193
196
 
194
- num = await db.field_add("like", 'string', '篮球 足球 乒乓球');
195
- console.log("like结果:" + num);
196
- if (num < 0) {
197
- console.log("SQL:" + db.sql);
198
- }
199
- }
197
+ // num = await db.field_add("like", 'string', '篮球 足球 乒乓球');
198
+ // console.log("like结果:" + num);
199
+ // if (num < 0) {
200
+ // console.log("SQL:" + db.sql);
201
+ // }
202
+ // }
200
203
 
201
- addField();
204
+ // addField();
202
205
 
203
206
 
204
207
  // async function test() {
@@ -255,13 +258,13 @@ addField();
255
258
  // }
256
259
 
257
260
  // 测试获取字段
258
- async function test3(){
259
- sql.config.log = true;
260
- var db = sql.db();
261
- var fields = await db.fields("cloud_user_flow");
262
- console.log(fields);
263
- }
264
- test3();
261
+ // async function test3(){
262
+ // sql.config.log = true;
263
+ // var db = sql.db();
264
+ // var fields = await db.fields("cloud_user_flow");
265
+ // console.log(fields);
266
+ // }
267
+ // test3();
265
268
 
266
269
 
267
270
  // 测试实例新对象获取