45 lines
923 B
TypeScript
45 lines
923 B
TypeScript
|
import mysql from "mysql";
|
||
|
import Tools from "./Tools";
|
||
|
|
||
|
/**
|
||
|
* DBTools
|
||
|
*/
|
||
|
export default class DBTools {
|
||
|
|
||
|
//#region Custom
|
||
|
|
||
|
public static async Query(query: string): Promise<any> {
|
||
|
const conn: mysql.Connection = this.connect();
|
||
|
|
||
|
let resp: any = null;
|
||
|
let run: boolean = true;
|
||
|
conn.query(query, function (err: mysql.MysqlError, rows: any, fields: mysql.FieldInfo[]): void {
|
||
|
if (err) {
|
||
|
console.error(`${query} Error: \n${err.message}`);
|
||
|
run = false;
|
||
|
}
|
||
|
resp = rows;
|
||
|
run = false;
|
||
|
});
|
||
|
while (run) {
|
||
|
await Tools.Sleep(100);
|
||
|
}
|
||
|
conn.end();
|
||
|
return resp;
|
||
|
}
|
||
|
|
||
|
private static connect(): mysql.Connection {
|
||
|
const conn: mysql.Connection = mysql.createConnection({
|
||
|
host: process.env.DB_HOST,
|
||
|
port: +process.env.DB_PORT,
|
||
|
user: process.env.DB_USER,
|
||
|
password: process.env.DB_PASSWORD,
|
||
|
database: process.env.DB_DATABASE
|
||
|
});
|
||
|
conn.connect();
|
||
|
return conn;
|
||
|
}
|
||
|
|
||
|
//#endregion
|
||
|
}
|