mirror of
				https://github.com/louislam/uptime-kuma.git
				synced 2025-10-31 11:29:20 +08:00 
			
		
		
		
	Merge pull request #2970 from louislam/fix-2968
Fix crash issue caused by mysqlQuery()
This commit is contained in:
		| @@ -637,9 +637,7 @@ class Monitor extends BeanModel { | ||||
|                 } else if (this.type === "mysql") { | ||||
|                     let startTime = dayjs().valueOf(); | ||||
|  | ||||
|                     await mysqlQuery(this.databaseConnectionString, this.databaseQuery); | ||||
|  | ||||
|                     bean.msg = ""; | ||||
|                     bean.msg = await mysqlQuery(this.databaseConnectionString, this.databaseQuery); | ||||
|                     bean.status = UP; | ||||
|                     bean.ping = dayjs().valueOf() - startTime; | ||||
|                 } else if (this.type === "mongodb") { | ||||
|   | ||||
| @@ -322,21 +322,28 @@ exports.postgresQuery = function (connectionString, query) { | ||||
|  * Run a query on MySQL/MariaDB | ||||
|  * @param {string} connectionString The database connection string | ||||
|  * @param {string} query The query to validate the database with | ||||
|  * @returns {Promise<(string[]|Object[]|Object)>} | ||||
|  * @returns {Promise<(string)>} | ||||
|  */ | ||||
| exports.mysqlQuery = function (connectionString, query) { | ||||
|     return new Promise((resolve, reject) => { | ||||
|         const connection = mysql.createConnection(connectionString); | ||||
|         connection.promise().query(query) | ||||
|             .then(res => { | ||||
|                 resolve(res); | ||||
|             }) | ||||
|             .catch(err => { | ||||
|  | ||||
|         connection.on("error", (err) => { | ||||
|             reject(err); | ||||
|         }); | ||||
|  | ||||
|         connection.query(query, (err, res) => { | ||||
|             if (err) { | ||||
|                 reject(err); | ||||
|             }) | ||||
|             .finally(() => { | ||||
|                 connection.destroy(); | ||||
|             }); | ||||
|             } else { | ||||
|                 if (Array.isArray(res)) { | ||||
|                     resolve("Rows: " + res.length); | ||||
|                 } else { | ||||
|                     resolve("No Error, but the result is not an array. Type: " + typeof res); | ||||
|                 } | ||||
|             } | ||||
|             connection.destroy(); | ||||
|         }); | ||||
|     }); | ||||
| }; | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user