From e86b8b2f46400e66c8c074114e479d0ee8a320b1 Mon Sep 17 00:00:00 2001 From: aixianling Date: Sat, 2 Jul 2022 15:15:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B4=E5=90=88=E5=88=97=E8=A1=A8=E5=B7=A5?= =?UTF-8?q?=E5=85=B7=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 1 + src/rest/custom/list.js | 16 +++++++++++++ src/utils/dbUitls.js | 53 ++++++++++++++++++++++++++++------------- 3 files changed, 54 insertions(+), 16 deletions(-) create mode 100644 src/rest/custom/list.js diff --git a/package.json b/package.json index bfea5fd..34ed697 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "fs-extra": "^10.0.1", "helmet": "^5.0.2", "mysql": "^2.18.1", + "sql": "^0.78.0", "uuid": "^8.3.2" } } diff --git a/src/rest/custom/list.js b/src/rest/custom/list.js new file mode 100644 index 0000000..ababa5d --- /dev/null +++ b/src/rest/custom/list.js @@ -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 || ""}) + }) + } +} diff --git a/src/utils/dbUitls.js b/src/utils/dbUitls.js index 31b394f..dedfce2 100644 --- a/src/utils/dbUitls.js +++ b/src/utils/dbUitls.js @@ -1,25 +1,46 @@ const mysql = require("mysql"); 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 = { pool: null, init: () => { this.pool = mysql.createPool(dbConfig) }, - 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) - } + query, + list: ({table, search, con}) => { + let total = 0, records = [] + if (table) { + const {current, size} = search, params = JSON.parse(JSON.stringify(search)) + delete params.current + delete params.size + const sqlCon = Object.keys(params).map(e => `and ${e}='${params[e]}'`).join(" ") + return Promise.all([ + query(`select 1 from ${table} where name like '%${con}%' ${sqlCon}`).then(res => { + return total = res.length + }), + 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(" ") }