整合列表工具类

This commit is contained in:
aixianling
2022-07-02 15:15:05 +08:00
parent 90ab258629
commit e86b8b2f46
3 changed files with 54 additions and 16 deletions

View File

@@ -25,6 +25,7 @@
"fs-extra": "^10.0.1", "fs-extra": "^10.0.1",
"helmet": "^5.0.2", "helmet": "^5.0.2",
"mysql": "^2.18.1", "mysql": "^2.18.1",
"sql": "^0.78.0",
"uuid": "^8.3.2" "uuid": "^8.3.2"
} }
} }

16
src/rest/custom/list.js Normal file
View File

@@ -0,0 +1,16 @@
const dbUtils = require("../../utils/dbUitls");
module.exports = {
action: "/node/custom/list",
method: "post",
execute: (request, response) => {
let {size, current, name} = request.query
dbUtils.list({
table: 'node_custom_config', con: name,
search: {size, current}
}).then(data => {
response.send({code: 0, data})
}).catch(err => {
response.send({code: 1, err: err?.sqlMessage || err || ""})
})
}
}

View File

@@ -1,25 +1,46 @@
const mysql = require("mysql"); const mysql = require("mysql");
const dbConfig = require("../config/db"); const dbConfig = require("../config/db");
const query = sql => new Promise((resolve, reject) => {
this.pool?.getConnection((err, conn) => {
if (err) {
console.log(err)
} else {
conn.query(sql, (err, result) => {
if (err) {
console.log(err)
reject(err)
} else {
conn.release()
resolve(result)
}
})
}
})
});
module.exports = { module.exports = {
pool: null, pool: null,
init: () => { init: () => {
this.pool = mysql.createPool(dbConfig) this.pool = mysql.createPool(dbConfig)
}, },
query: sql => new Promise((resolve, reject) => { query,
this.pool?.getConnection((err, conn) => { list: ({table, search, con}) => {
if (err) { let total = 0, records = []
console.log(err) if (table) {
} else { const {current, size} = search, params = JSON.parse(JSON.stringify(search))
conn.query(sql, (err, result) => { delete params.current
if (err) { delete params.size
console.log(err) const sqlCon = Object.keys(params).map(e => `and ${e}='${params[e]}'`).join(" ")
reject(err) return Promise.all([
} else { query(`select 1 from ${table} where name like '%${con}%' ${sqlCon}`).then(res => {
conn.release() return total = res.length
resolve(result) }),
} query(`select * from ${table} where name like '%${con}%' ${sqlCon} limit ${(current-1)*size},${size}`).then(res => {
return records = res
}) })
} ]).then(() => {
}) return {records, total}
}), })
}
},
format: args => args.map(e => `${e.prop}`).join(" ")
} }