#封装 增 删 改 查
const mysql = require("mysql")
/* 建立链接池 */
const pool = mysql.createPool({
host: "localhost",
user: "root",
password: "root",
database: "yang",
queueLimit: 3,
connectionLimit: 20
})
/* 添加查的方法 */
let query = function(sql, callBack) {
pool.getConnection((err, conn) => {
if (err) {
console.log(err);
return;
}
conn.query(sql, (err, data) => {
if (err) {
console.log(err)
return
}
if (callBack) {
callBack(data)
}
})
})
}
/* 封装 插入数据的方法 */
let insert = (table, datas, callBack) => {
/* 拼接*/
let fields = ""; //字段
let values = ""; // 值
for (let k in datas) {
fields += k + "," //拼接
values += `'${datas[k]}',`
}
/* 清除最后一位 */
fields = fields.slice(0, -1);
values = values.slice(0, -1);
let sql = `INSERT INTO ${table} (${fields}) VALUES (${values})`;
query(sql, callBack)
}
/* 封装删除的方法 */
let del = (table, datas, callBack) => {
let arr = ["1=1"]; //避免datas为空时,出现异常
for (const k in datas) {
arr.push(`${k}='${datas[k]}'`);
}
let sql = `delete from ${table} where ${arr.join(" and ")}`
query(sql, callBack)
}
/** 封装修改的方法
*
* @param {string} table 表名
* @param {object} sets 修改的字段与值
* @param {object} wheres 判断条件
* @param {Function} callBack 回调函数
*/
let undate = (table, sets, wheres, callBack) => {
/* 新建一个数组 来拼接 */
let whereArr = ["1=1"] //避免datas为空时,出现异常错误。
for (let k in wheres) {
whereArr.push(`${k}='${wheres[k]}'`)
}
//准备一个数组,用来拼接 set 子句
let setArr = [];
for (const k in sets) {
setArr.push(`${k} = '${sets[k]}'`)
}
let sql = `UPDATE ${table} SET ${setArr.join(",")} WHERE ${whereArr.join(" and ")}`
query(sql, callBack)
}
//暴露出去
module.exports = {
query,
insert,
del,
undate
}
#调用
const db = require("./db");
/* 查 */
db.query("select * from book", data => {
console.log(data)
})
/* 新增 */
let book = {
id: 5,
name: "哈哈哈",
price: 22,
category: "修狗"
}
db.insert("book", book, () => {
console.log("添加成功")
})
/* 删除 */
db.del("book", { id: 1 })
/* 修改 */
db.undate("book", { price: 300 }, { id: 4 })
node 封装MySQL增删改查
最新推荐文章于 2024-07-11 16:26:04 发布