mm_mysql 1.6.5 → 1.6.9

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/db.js +49 -14
  2. package/index.js +1 -7
  3. package/package.json +1 -1
  4. package/test.js +195 -170
package/db.js CHANGED
@@ -8,23 +8,51 @@ class DB extends Sql {
8
8
  /**
9
9
  * @description 数据库管理器
10
10
  * @param {String} database 数据库名称
11
- * @param {Object} run 查询函数
12
- * @param {Object} exec 更改函数
13
11
  */
14
- constructor(database, run, exec) {
15
- super(run, exec);
16
-
17
- // 数据库名
18
- this.database = database;
19
-
12
+ constructor(mysql) {
13
+ super(mysql.run, mysql.exec);
20
14
  // 事务中
21
15
  this.task = 0;
22
16
 
23
17
  // 事务SQL
24
18
  this.task_sql = "";
19
+
20
+ /**
21
+ * 获取上级
22
+ * @return {Object} 返回上级管理器
23
+ */
24
+ this.parent = function() {
25
+ return mysql;
26
+ };
25
27
  }
26
28
  }
27
29
 
30
+ /**
31
+ * 获取数据库名
32
+ * @return {String} 数据库
33
+ */
34
+ DB.prototype.database = function() {
35
+ return this.parent().config.database;
36
+ };
37
+
38
+ /**
39
+ * 构建新管理器
40
+ * @param {String} table 表名
41
+ * @param {String} key 键名
42
+ * @return {Object} 返回管理器
43
+ */
44
+ DB.prototype.new = function(table, key) {
45
+ var db = this.parent().db();
46
+ db.table = table;
47
+ if (key) {
48
+ db.key = key;
49
+ } else {
50
+ var arr = table.split("_");
51
+ db.key = arr[arr.length - 1] + "_id";
52
+ }
53
+ return db;
54
+ };
55
+
28
56
  /**
29
57
  * 事务开始
30
58
  */
@@ -64,7 +92,7 @@ DB.prototype.back = async function(identifier = "point_1") {
64
92
  */
65
93
  DB.prototype.tables = async function(table) {
66
94
  var list = await this.run("show tables");
67
- var key = 'Tables_in_' + this.database;
95
+ var key = 'Tables_in_' + this.database();
68
96
  if (table) {
69
97
  list = list.search(table, key);
70
98
  }
@@ -83,7 +111,7 @@ DB.prototype.fields = async function(table, field_name) {
83
111
  var field =
84
112
  'COLUMN_NAME as `name`,ORDINAL_POSITION as `cid`,COLUMN_DEFAULT as `dflt_value`,IS_NULLABLE as `notnull`,COLUMN_TYPE as `type`,COLUMN_KEY as `pk`,EXTRA as `auto`,COLUMN_COMMENT as `note`';
85
113
  var sql = "select " + field + " from information_schema.COLUMNS where `table_name` = '" + table +
86
- "' and `table_schema` = '" + this.database + "'";
114
+ "' and `table_schema` = '" + this.database() + "'";
87
115
  if (field_name) {
88
116
  sql += " AND COLUMN_NAME='" + field_name + "'";
89
117
  }
@@ -193,7 +221,14 @@ DB.prototype.setType = function(field, type, value, not_null, auto) {
193
221
  type += " DEFAULT 0";
194
222
  }
195
223
  break;
224
+ case "longtext":
196
225
  case "text":
226
+ if (type == "text") {
227
+ type = "text NULL"
228
+ }
229
+ else if (type == "longtext") {
230
+ type = "longtext NULL"
231
+ }
197
232
  break;
198
233
  default:
199
234
  if (type.indexOf('var') !== -1) {
@@ -270,7 +305,7 @@ DB.prototype.clearTable = async function(reset = true, table = '') {
270
305
  DB.prototype.field_add = async function(field, type, value, not_null, auto, isKey) {
271
306
  var sql =
272
307
  "SELECT COUNT(*) as `count` FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='{0}' AND table_name='{1}' AND COLUMN_NAME='{2}'";
273
- sql = sql.replace('{0}', this.database).replace('{1}', this.table).replace('{2}', field);
308
+ sql = sql.replace('{0}', this.database()).replace('{1}', this.table).replace('{2}', field);
274
309
  var arr = await this.run(sql);
275
310
  if (arr && arr.length > 0) {
276
311
  if (arr[0].count == 0) {
@@ -302,7 +337,7 @@ DB.prototype.field_add = async function(field, type, value, not_null, auto, isKe
302
337
  DB.prototype.field_set = async function(field, type, value, not_null, auto, isKey, new_name) {
303
338
  var sql =
304
339
  "SELECT COUNT(*) as `count` FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='{0}' AND table_name='{1}' AND COLUMN_NAME='{2}'";
305
- sql = sql.replace('{0}', this.database).replace('{1}', this.table).replace('{2}', field);
340
+ sql = sql.replace('{0}', this.database()).replace('{1}', this.table).replace('{2}', field);
306
341
  var arr = await this.run(sql);
307
342
  if (arr && arr.length > 0) {
308
343
  if (arr[0].count == 0) {
@@ -312,7 +347,7 @@ DB.prototype.field_set = async function(field, type, value, not_null, auto, isKe
312
347
 
313
348
  var type = this.setType(field, type, value, not_null, auto);
314
349
  if (type.has('text')) {
315
- type = type.replace('NOT NULL', '');
350
+ type = type.replace('NOT NULL', '').replace("DEFAULT ''", "");
316
351
  }
317
352
 
318
353
  if (!new_name) {
@@ -337,7 +372,7 @@ DB.prototype.field_set = async function(field, type, value, not_null, auto, isKe
337
372
  DB.prototype.field_del = async function(field) {
338
373
  var sql =
339
374
  "SELECT COUNT(*) as `count` FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='{0}' AND table_name='{1}' AND COLUMN_NAME='{2}'";
340
- sql = sql.replace('{0}', this.database).replace('{1}', this.table).replace('{2}', field);
375
+ sql = sql.replace('{0}', this.database()).replace('{1}', this.table).replace('{2}', field);
341
376
  var arr = await this.run(sql);
342
377
  if (arr && arr.length > 0) {
343
378
  if (arr[0].count > 0) {
package/index.js CHANGED
@@ -198,17 +198,11 @@ class Mysql {
198
198
  });
199
199
  };
200
200
 
201
- var _this = this;
202
-
203
201
  /**
204
202
  * @description 获取数据库管理器
205
203
  */
206
204
  this.db = function() {
207
- var db = new DB($this.config.database, $this.run, $this.exec);
208
- db.parent = function() {
209
- return _this;
210
- }
211
- return db;
205
+ return new DB($this);
212
206
  };
213
207
  }
214
208
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mm_mysql",
3
- "version": "1.6.5",
3
+ "version": "1.6.9",
4
4
  "description": "这是超级美眉mysql帮助函数模块,用于便捷操作mysql,使用await方式,可以避免嵌套函数",
5
5
  "main": "index.js",
6
6
  "scripts": {
package/test.js CHANGED
@@ -6,42 +6,42 @@ sql.setConfig({
6
6
  });
7
7
  sql.open();
8
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
- };
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() {
@@ -88,111 +88,117 @@ var tpl = {
88
88
  // }
89
89
  // test_tpl_get();
90
90
 
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
- // }
115
-
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
- // }
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
+ }
121
115
 
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
- // }
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
+ }
127
121
 
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
- // }
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
+ }
133
127
 
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
- // }
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
+ }
139
133
 
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
- // }
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
+ }
145
139
 
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
- // }
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
+ }
151
145
 
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
- // }
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
+ }
157
151
 
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
- // }
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
+ }
163
157
 
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
- // }
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
+ }
169
163
 
170
- // num = await db.field_add("note", 'text', null, false);
171
- // console.log("note结果:" + num);
172
- // if (num < 0) {
173
- // console.log("SQL:" + db.sql);
174
- // }
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
+ }
175
169
 
176
- // num = await db.field_add("cycle", 'time', null, true);
177
- // console.log("cycle结果:" + num);
178
- // if (num < 0) {
179
- // console.log("SQL:" + db.sql);
180
- // }
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
+ }
175
+
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
+ }
181
+
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
+ }
181
187
 
182
- // num = await db.field_add("money", 'double', 0);
183
- // console.log("money结果:" + num);
184
- // if (num < 0) {
185
- // console.log("SQL:" + db.sql);
186
- // }
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
+ }
187
193
 
188
- // num = await db.field_add("like", 'string', '篮球 足球 乒乓球');
189
- // console.log("like结果:" + num);
190
- // if (num < 0) {
191
- // console.log("SQL:" + db.sql);
192
- // }
193
- // }
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
+ }
194
200
 
195
- // addField();
201
+ addField();
196
202
 
197
203
 
198
204
  // async function test() {
@@ -248,50 +254,69 @@ var tpl = {
248
254
  // // console.log(user);
249
255
  // }
250
256
 
251
-
252
- // 事务
253
- async function test() {
257
+ // 测试获取字段
258
+ async function test3(){
254
259
  sql.config.log = true;
255
260
  var db = sql.db();
256
- // var db2 = sql.db();
257
- // await db.start();
258
- // console.log(db.task);
259
- db.table = "cloud_user_flow";
260
- // var te = await db.add({
261
- // user_id: 1
262
- // });
263
- // var user = await db.getObj({
264
- // user_id: 1
265
- // });
266
- // var te1 = await db.add({
267
- // user_id1: 3
268
- // });
269
-
270
- var bl = await db.set({
271
- user_id_not: "1"
272
- }, {
273
- amount_del: 5,
274
- balance_add: 1000,
275
- state: 2
276
- });
277
-
278
- // db.table = "user_account";
279
- // db.size = 0;
280
- // var list_user = await db.get({
281
- // user_id_has: "1,45,46,47,48"
282
- // });
283
- // console.log(list_user);
284
-
285
- // db2.table = "cloud_user_flow";
286
- // db2.add({
287
- // user_id: 1,
288
- // note: "哈哈"
289
- // });
290
- // console.log(user);
291
- // await db.commit();
292
- console.log(db.sql);
293
- // await db.back();
261
+ var fields = await db.fields("cloud_user_flow");
262
+ console.log(fields);
294
263
  }
264
+ test3();
265
+
266
+
267
+ // 测试实例新对象获取
268
+ // async function test3(){
269
+ // sql.config.log = true;
270
+ // var db = sql.db();
271
+ // var db2 = db.new("cloud_user_flow");
272
+ // var list = await db2.get();
273
+ // console.log(list);
274
+ // }
275
+ // test3();
276
+
277
+ // 事务
278
+ // async function test() {
279
+ // sql.config.log = true;
280
+ // var db = sql.db();
281
+ // // var db2 = sql.db();
282
+ // // await db.start();
283
+ // // console.log(db.task);
284
+ // db.table = "cloud_user_flow";
285
+ // // var te = await db.add({
286
+ // // user_id: 1
287
+ // // });
288
+ // // var user = await db.getObj({
289
+ // // user_id: 1
290
+ // // });
291
+ // // var te1 = await db.add({
292
+ // // user_id1: 3
293
+ // // });
294
+
295
+ // var bl = await db.set({
296
+ // user_id_not: "1"
297
+ // }, {
298
+ // amount_del: 5,
299
+ // balance_add: 1000,
300
+ // state: 2
301
+ // });
302
+
303
+ // // db.table = "user_account";
304
+ // // db.size = 0;
305
+ // // var list_user = await db.get({
306
+ // // user_id_has: "1,45,46,47,48"
307
+ // // });
308
+ // // console.log(list_user);
309
+
310
+ // // db2.table = "cloud_user_flow";
311
+ // // db2.add({
312
+ // // user_id: 1,
313
+ // // note: "哈哈"
314
+ // // });
315
+ // // console.log(user);
316
+ // // await db.commit();
317
+ // console.log(db.sql);
318
+ // // await db.back();
319
+ // }
295
320
 
296
321
 
297
322
  // // 算法排序
@@ -362,7 +387,7 @@ async function test() {
362
387
  // // console.log("删除:" + JSON.stringify(ret), db.error);
363
388
  // }
364
389
 
365
- test();
390
+ // test();
366
391
 
367
392
 
368
393