doomiwork 3.5.0 → 3.5.2

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.
@@ -6,6 +6,7 @@ const apiResult = require('../actionresult');
6
6
  const logHelper = require('doomi-helper').logHelper;
7
7
  const PoolManager = require('./poolmanager')
8
8
  const mysql = require('mysql');
9
+ const executeSqlWithConnection = Symbol("executeSqlWithConnection");
9
10
  class Database {
10
11
  /**
11
12
  *
@@ -21,30 +22,30 @@ class Database {
21
22
  * 防Sql注入进行编码
22
23
  * @param {*} value
23
24
  */
24
- escape(value){
25
+ escape(value) {
25
26
  return mysql.escape(value);
26
27
  }
27
28
  /**
28
29
  * 记录错误日志
29
30
  */
30
- logError(scene,error,user=null){
31
+ logError(scene, error, user = null) {
31
32
  ///不需要记录错误日志
32
- if (this.ingoreErrorLog === true || !this.actionLogger || typeof (this.actionLogger.logError)!=='function'){
33
- return ;
33
+ if (this.ingoreErrorLog === true || !this.actionLogger || typeof (this.actionLogger.logError) !== 'function') {
34
+ return;
34
35
  }
35
36
  ///如果没有传场景,则记录数据库的业务值
36
37
  if (!scene) scene = this.constructor.name;
37
- this.actionLogger.logError({ scene, error, user})
38
+ this.actionLogger.logError({ scene, error, user })
38
39
  }
39
40
  /**
40
41
  * 检查是否存在数据
41
42
  * @param {*} sqlCommand
42
43
  * @param {*} parameters
43
44
  */
44
- async existedSqlData(sqlCommand, parameters){
45
- let sqlExecute = await this.executeSql(sqlCommand, parameters);
46
- if (!sqlExecute.successed) return {successed:false}
47
- if (!sqlExecute.rows || sqlExecute.rows.length == 0) return { success: true, existed:false }
45
+ async existedSqlData(sqlCommand, parameters, conn, autoclose = true) {
46
+ let sqlExecute = await this.executeSql(sqlCommand, parameters, conn, autoclose);
47
+ if (!sqlExecute.successed) return { successed: false }
48
+ if (!sqlExecute.rows || sqlExecute.rows.length == 0) return { success: true, existed: false }
48
49
  return { successed: true, existed: true, ...sqlExecute.rows[0] }
49
50
  }
50
51
  /**
@@ -53,9 +54,9 @@ class Database {
53
54
  * @param {*} parameters
54
55
  * @returns
55
56
  */
56
- async getComputedRowValue(sqlCommand, parameters) {
57
- let sqlExecute = await this.executeSql(sqlCommand, parameters);
58
- if (sqlExecute.successed || sqlExecute.rows===0) return {successed:false,errcode:-1,errmsg:'没有任何记录'}
57
+ async getComputedRowValue(sqlCommand, parameters, conn, autoclose = true) {
58
+ let sqlExecute = await this.executeSql(sqlCommand, parameters, conn, autoclose);
59
+ if (sqlExecute.successed || sqlExecute.rows.length == 0) return { successed: false, errcode: -1, errmsg: '没有任何记录' }
59
60
  return { successed: true, ...sqlExecute.rows[0] }
60
61
  }
61
62
 
@@ -63,7 +64,7 @@ class Database {
63
64
  * 单独获得一个连接串
64
65
  * @returns
65
66
  */
66
- getConnection(){
67
+ getConnection() {
67
68
  return new Promise((success, failed) => {
68
69
  if (!this.pool) {
69
70
  return success(null);
@@ -79,23 +80,24 @@ class Database {
79
80
  * @param {*} sqlCommand
80
81
  * @param {*} parameters 参数
81
82
  */
82
- executeSql(sqlCommand, parameters,conn,autoclose=true) {
83
+ executeSql(sqlCommand, parameters, conn, autoclose = true) {
83
84
  let logger = this.logger;
84
- let that = this;
85
- if (conn){
86
- return this.executeSqlWithConnection(sqlCommand, parameters, conn, autoclose)
85
+ // let that = this;
86
+ if (conn) {
87
+ return this[executeSqlWithConnection](sqlCommand, parameters, conn, autoclose)
87
88
  }
88
89
  return new Promise((success, failed) => {
89
90
  if (!this.pool) {
90
91
  return success(apiResult.DB_CONNECTED_FAILED);
91
92
  }
92
93
  ///创建出数据库连接,准备执行
93
- this.pool.getConnection((err, connection)=> {
94
+ this.pool.getConnection(async (err, connection) => {
94
95
  if (err) {
95
- logger.error("Database Connected Failed :"+ err);
96
+ logger.error("Database Connected Failed :" + err);
96
97
  return success(apiResult.DB_CONNECTED_FAILED);
97
98
  }
98
- return this.executeSqlWithConnection(sqlCommand, parameters, connection, autoclose)
99
+ let sqlResult = await this[executeSqlWithConnection](sqlCommand, parameters, connection, autoclose)
100
+ return success(sqlResult)
99
101
  });
100
102
  });
101
103
  }
@@ -106,11 +108,11 @@ class Database {
106
108
  * @param {*} conn
107
109
  * @param {*} closeAfterQuery 执行完毕后是否关闭
108
110
  */
109
- executeSqlWithConnection(sqlCommand, parameters, conn, autoclose =true){
111
+ [executeSqlWithConnection](sqlCommand, parameters, conn, autoclose = true) {
110
112
  if (!conn) return Promise.resolve(apiResult.DB_CONNECTED_FAILED);
111
- return new Promise(success=>{
113
+ return new Promise((success) => {
112
114
  this.logger.trace("SqlCommand:", sqlCommand, "Parameters:", parameters);
113
- conn.query(sqlCommand, parameters, (err, rows) => {
115
+ return conn.query(sqlCommand, parameters, (err, rows) => {
114
116
  if (autoclose) conn.release();
115
117
  if (err) {
116
118
  this.logger.error("Database Query Error :" + err, sqlCommand);
@@ -126,29 +128,29 @@ class Database {
126
128
  * @param {*} conn
127
129
  * @param {*} func
128
130
  */
129
- async executeSqlWithTransaction(func,conn){
131
+ async executeSqlWithTransaction(conn, func) {
130
132
  if (!conn) {
131
133
  conn = await this.getConnection();
132
134
  }
133
- if (!conn) return Promise.resolve({successed:false});
134
- return new Promise(success=>{
135
- conn.beginTransaction(async err=>{
136
- if (err) return success({successed:false,errcode:-1, errmessage: '【事务启动错误】'+err.message });
137
- let result = {successed:true}
138
- if (func && typeof (func)==='function') result = await func(params);
135
+ if (!conn) return Promise.resolve({ successed: false });
136
+ return new Promise(success => {
137
+ conn.beginTransaction(async err => {
138
+ if (err) return success({ successed: false, errcode: -1, errmessage: '【事务启动错误】' + err.message });
139
+ let result = { successed: true }
140
+ if (func && typeof (func) === 'function') result = await func(conn);
139
141
  if (result.successed) {
140
142
  conn.commit(commiterror => {
141
143
  if (commiterror) {
142
144
  console.log('事务提交失败 :', commiterror);
143
- return success(Object.assign(apiResult.DB_EXECUTE_FAILED, { errmessage: err.message }));
145
+ return success(Object.assign(apiResult.DB_EXECUTE_FAILED, { errmessage: commiterror.message }));
144
146
  }
145
147
  conn.release();
146
148
  return success(result);
147
149
  })
148
- }else{
150
+ } else {
149
151
  conn.rollback(() => {
150
152
  conn.release();
151
- return success(Object.assign(apiResult.DB_EXECUTE_FAILED, { errmessage: err.message }));
153
+ return success(Object.assign(apiResult.DB_EXECUTE_FAILED, { errmessage: '撤回操作' }));
152
154
  })
153
155
  }
154
156
  })
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "doomiwork",
3
- "version": "3.5.0",
3
+ "version": "3.5.2",
4
4
  "description": "doomisoft nodejs web framework",
5
5
  "main": "index.js",
6
6
  "scripts": {