mm_mysql 2.4.3 → 2.4.5

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 (3) hide show
  1. package/index.js +2 -3
  2. package/package.json +1 -1
  3. package/sql.js +30 -30
package/index.js CHANGED
@@ -124,8 +124,6 @@ Mysql.prototype.open = async function () {
124
124
  // 测试连接池连接
125
125
  let conn = await this._pool.getConnection();
126
126
  conn.release();
127
-
128
- this.log('info', '数据库连接池创建成功');
129
127
  return true;
130
128
  } catch (error) {
131
129
  this.log('error', '数据库连接池创建失败', error);
@@ -195,6 +193,7 @@ Mysql.prototype.run = async function (sql, params = []) {
195
193
  let [rows] = await conn.query(sql, params);
196
194
  ret = rows;
197
195
  } catch (err) {
196
+ console.error('SQL执行失败', err);
198
197
  this.sql = err.sql;
199
198
  this.error = {
200
199
  code: err.errno,
@@ -233,7 +232,7 @@ Mysql.prototype.exec = async function (sql, params = []) {
233
232
  let [result] = await conn.execute(sql, params);
234
233
  ret = result.insertId || result.affectedRows || result.changedRows || 1;
235
234
  } catch (error) {
236
- this.log('error', 'SQL执行失败', error);
235
+ console.error('SQL执行失败', error);
237
236
  this.sql = error.sql;
238
237
  this.error = {
239
238
  code: error.errno,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mm_mysql",
3
- "version": "2.4.3",
3
+ "version": "2.4.5",
4
4
  "description": "这是超级美眉mysql帮助函数模块,用于便捷操作mysql,使用await方式,可以避免嵌套函数",
5
5
  "main": "index.js",
6
6
  "dependencies": {
package/sql.js CHANGED
@@ -203,7 +203,7 @@ Sql.prototype.toQuery = function (where, sort, view) {
203
203
  }
204
204
  if (this.size && this.page) {
205
205
  var start = this.size * (this.page - 1);
206
- sql += ' limit ' + start + ',' + this.size;
206
+ sql += ' limit ' + start + ', ' + this.size;
207
207
  }
208
208
  return sql;
209
209
  };
@@ -307,11 +307,11 @@ Sql.prototype.groupMathSql = async function (where, groupby, view, sort, method)
307
307
  var arr = view_val.split(',');
308
308
  for (var i = 0; i < arr.length; i++) {
309
309
  var str = escapeId(arr[i]);
310
- view_str += ',' + method.toUpperCase() + '(' + str + ') ' + method.toLowerCase() + '_' + str.replace(
310
+ view_str += ', ' + method.toUpperCase() + '(' + str + ') ' + method.toLowerCase() + '_' + str.replace(
311
311
  /`/g, '');
312
312
  }
313
313
  } else {
314
- view_str = ',' + method.toUpperCase() + '(' + escapeId(view_val) + ') ' + method.toLowerCase() + '_' +
314
+ view_str = ', ' + method.toUpperCase() + '(' + escapeId(view_val) + ') ' + method.toLowerCase() + '_' +
315
315
  view_val.replace(/`/g, '');
316
316
  }
317
317
  var sql = 'SELECT ' + (groupby ? escapeId(groupby) : '') + view_str + ' FROM `' + this.table + '`';
@@ -326,7 +326,7 @@ Sql.prototype.groupMathSql = async function (where, groupby, view, sort, method)
326
326
  }
327
327
  if (this.size && this.page) {
328
328
  var start = this.size * (this.page - 1);
329
- sql += ' limit ' + start + ',' + this.size;
329
+ sql += ' limit ' + start + ', ' + this.size;
330
330
  }
331
331
  return await this.run(sql);
332
332
  };
@@ -434,7 +434,7 @@ Sql.prototype.toWhere = function (obj, like) {
434
434
  } else {
435
435
  where = this._buildExactWhere(obj);
436
436
  }
437
- return where.replace(' and ', '');
437
+ return where.replace(/^ and /, '');
438
438
  };
439
439
 
440
440
  Sql.prototype._buildLikeWhere = function (obj) {
@@ -462,7 +462,7 @@ Sql.prototype._buildLikeWhere = function (obj) {
462
462
  where += ' and ' + escapeId(k) + ' = ' + val;
463
463
  }
464
464
  }
465
- return where;
465
+ return where.replace(/^ and /, '');
466
466
  };
467
467
 
468
468
  Sql.prototype._buildExactWhere = function (obj) {
@@ -488,7 +488,7 @@ Sql.prototype._buildExactWhere = function (obj) {
488
488
  where += ' and ' + escapeId(k) + ' = ' + val;
489
489
  }
490
490
  }
491
- return where;
491
+ return where.replace(/^ and /, '');
492
492
  };
493
493
 
494
494
  /**
@@ -508,16 +508,16 @@ Sql.prototype.toSet = function (obj) {
508
508
 
509
509
  if (k.endsWith('_add')) {
510
510
  let k2 = escapeId(k.replace('_add', ''));
511
- set += ',' + k2 + ' = ' + k2 + ' + ' + val;
511
+ set += ', ' + k2 + ' = ' + k2 + ' + ' + val;
512
512
  } else if (k.endsWith('_del')) {
513
513
  let k3 = escapeId(k.replace('_del', ''));
514
- set += ',' + k3 + ' = ' + k3 + ' - ' + val;
514
+ set += ', ' + k3 + ' = ' + k3 + ' - ' + val;
515
515
  } else {
516
- set += ',' + escapeId(k) + ' = ' + val;
516
+ set += ', ' + escapeId(k) + ' = ' + val;
517
517
  }
518
518
  }
519
519
 
520
- return set.replace(',', '');
520
+ return set.replace(/^, /, '');
521
521
  };
522
522
 
523
523
  /**
@@ -534,12 +534,12 @@ Sql.prototype.toAddSql = function (item) {
534
534
  let value = '';
535
535
 
536
536
  for (let k in item) {
537
- key += ',' + escapeId(k);
538
- value += ',' + escape(item[k]);
537
+ key += ', ' + escapeId(k);
538
+ value += ', ' + escape(item[k]);
539
539
  }
540
540
 
541
541
  // 使用直接拼接的方式,避免模板替换错误
542
- let sql = `INSERT INTO \`${this.table}\` (${key.replace(',', '')}) VALUES (${value.replace(',', '')});`;
542
+ let sql = `INSERT INTO \`${this.table}\` (${key.replace(', ', '')}) VALUES (${value.replace(/^, /, '')});`;
543
543
 
544
544
  return sql;
545
545
  };
@@ -693,21 +693,21 @@ Sql.prototype._parseSetData = async function (set) {
693
693
  for (let o of arr) {
694
694
  let ar = o.split('=');
695
695
  if (ar.length === 2) {
696
- key_str += ',' + ar[0];
697
- val_str += ',' + ar[1];
696
+ key_str += ', ' + ar[0];
697
+ val_str += ', ' + ar[1];
698
698
  }
699
699
  }
700
700
  } else {
701
701
  for (let k in set) {
702
- key_str += ',' + escapeId(k);
702
+ key_str += ', ' + escapeId(k);
703
703
  let val = set[k];
704
- val_str += ',' + escape(val);
704
+ val_str += ', ' + escape(val);
705
705
  }
706
706
  }
707
707
 
708
708
  return {
709
- key_str: key_str.replace(',', ''),
710
- val_str: val_str.replace(',', '')
709
+ key_str: key_str.replace(/^, /, ''),
710
+ val_str: val_str.replace(/^, /, '')
711
711
  };
712
712
  };
713
713
 
@@ -1180,7 +1180,7 @@ Sql.prototype.tplBody = function (param_dt, sql_dt) {
1180
1180
  let parts = [];
1181
1181
  if (!sql_dt || Object.keys(sql_dt).length === 0) {
1182
1182
  for (let key in param_dt) {
1183
- parts.push(' ' + escapeId(key) + ' = ' + escape(param_dt[key]));
1183
+ parts.push(', ' + escapeId(key) + ' = ' + escape(param_dt[key]));
1184
1184
  }
1185
1185
  } else {
1186
1186
  for (let key in param_dt) {
@@ -1188,13 +1188,13 @@ Sql.prototype.tplBody = function (param_dt, sql_dt) {
1188
1188
  if (sql_dt[key]) {
1189
1189
  // 使用直接替换方式,避免模板替换错误
1190
1190
  let replaced = sql_dt[key].replaceAll('{0}', value.trim("'"));
1191
- parts.push(' ' + replaced.replace(/\+ -/g, '- ').replace(/- -/g, '+ '));
1191
+ parts.push(', ' + replaced.replace(/\+ -/g, '- ').replace(/- -/g, '+ '));
1192
1192
  } else {
1193
- parts.push(' ' + escapeId(key) + ' = ' + value);
1193
+ parts.push(', ' + escapeId(key) + ' = ' + value);
1194
1194
  }
1195
1195
  }
1196
1196
  }
1197
- return parts.join(',').replace(', ', '');
1197
+ return parts.join(',').replace(/^, /, '');
1198
1198
  };
1199
1199
 
1200
1200
  /**
@@ -1593,22 +1593,22 @@ Sql.prototype.backup = async function (file, create = false) {
1593
1593
  }
1594
1594
 
1595
1595
  // 构建 SQL 语句
1596
- let sqlContent = '';
1596
+ let sql_content = '';
1597
1597
 
1598
1598
  // 添加表结构(简化版,实际应用中可能需要更复杂的表结构导出)
1599
- sqlContent += `-- 备份表: ${this.table}\n`;
1600
- sqlContent += `-- 备份时间: ${new Date().toISOString()}\n\n`;
1599
+ sql_content += `-- 备份表: ${this.table}\n`;
1600
+ sql_content += `-- 备份时间: ${new Date().toISOString()}\n\n`;
1601
1601
 
1602
1602
  // 如果create为true,添加创建表语句
1603
1603
  if (create) {
1604
1604
  let createTableSql = await this._getCreateTableSql();
1605
1605
  if (createTableSql) {
1606
- sqlContent += createTableSql + '\n\n';
1606
+ sql_content += createTableSql + '\n\n';
1607
1607
 
1608
1608
  // 添加表注释信息
1609
1609
  let commentSql = await this._getTableComments();
1610
1610
  if (commentSql) {
1611
- sqlContent += commentSql + '\n';
1611
+ sql_content += commentSql + '\n';
1612
1612
  }
1613
1613
  }
1614
1614
  }
@@ -1617,7 +1617,7 @@ Sql.prototype.backup = async function (file, create = false) {
1617
1617
  for (let row of data) {
1618
1618
  let keys = Object.keys(row).map(key => this.escapeId(key)).join(', ');
1619
1619
  let values = Object.values(row).map(value => this.escape(value)).join(', ');
1620
- sqlContent += `INSERT INTO \`${this.table}\` (${keys}) VALUES (${values});\n`;
1620
+ sql_content += `INSERT INTO \`${this.table}\` (${keys}) VALUES (${values});\n`;
1621
1621
  }
1622
1622
 
1623
1623
  // 写入文件(这里需要文件系统模块,实际使用时需要引入 fs)