【node】mysql2的promise优雅用法

banner图

【node】mysql2的promise优雅用法

文章类型:node

发布时间:2023-02-04

依赖:

"dependencies": {
  "mysql2": "^2.3.3",
  "roc-utils": "^0.2.0"
}

代码示例:

const mysql2 = require("mysql2");
const { asyncTasks } = require("roc-utils");
/**
 * 创建mysql连接池
 */
const pool = mysql2.createPool({
  host: "localhost",
  port: 3306,
  database: "rocwp",
  user: "root",
  password: "root",
});
pool.getConnection((err) => {
  if (err) return console.log("mysql连接失败");
  console.log("mysql连接成功");
});
const conn = pool.promise();


/**
 * 查询列表-全部
 */
// find();
async function find() {
  const [err, results] = await asyncTasks(conn.execute(`SELECT term_id, name, slug, term_group FROM wp_terms`));
  if (err) return console.log("查询出错", err.sqlMessage);
  console.log(results[0]);
}


/**
 * 查询列表-分页
 */
const quertParams = {
  pageNum: 2,
  pageSize: 5,
};
// findLimitPage(quertParams);
async function findLimitPage(quertParams) {
  const pageSize = quertParams.pageSize;
  const dataIndex = (quertParams.pageNum - 1) * pageSize;
  const [err, results] = await asyncTasks(conn.execute(`SELECT term_id, name, slug, term_group FROM wp_terms LIMIT ?,?`, [dataIndex, pageSize]));
  if (err) return console.log("查询出错", err.sqlMessage);
  console.log(results[0]);
}


/**
 * 查询详情(根据id查询列表)
 */
// findById(1);
async function findById(id) {
  const [err, results] = await asyncTasks(conn.execute(`SELECT term_id, name, slug, term_group FROM wp_terms WHERE term_id=?`, [id]));
  if (err) return console.log("查询出错", err.sqlMessage);
  console.log(results[0]);
}


/**
 * 添加内容
 */
const addSendData = {
  name: "测试",
  slug: "测试测试测试",
  termGroup: 0,
};
// add(addSendData);
async function add(requestData) {
  const { name, slug, termGroup } = requestData;
  const [err, results] = await asyncTasks(conn.execute(`INSERT INTO wp_terms (name, slug, term_group) VALUES (?, ?, ?)`, [name, slug, termGroup]));
  if (err) return console.log("添加失败", err.sqlMessage);
  console.log(results[0]);
}


/**
 * 编辑内容
 */
const editSendData = {
  termId: 33,
  name: "测试测试测试测试测试",
  slug: "测试测试测试测试测试测试测试测试测试",
  termGroup: 0,
};
// edit(editSendData);
async function edit(requestData) {
  const { termId, name, slug, termGroup } = requestData;
  const [err, results] = await asyncTasks(conn.execute(`UPDATE wp_terms SET name=?, slug=?, term_group=? WHERE term_id=?`, [name, slug, termGroup, termId]));
  if (err) return console.log("编辑失败", err.sqlMessage);
  console.log(results[0]);
}


/**
 * 删除内容
 */
// del(33);
async function del(id) {
  const [err, results] = await asyncTasks(conn.execute(`DELETE FROM wp_terms WHERE term_id=?`, [id]));
  if (err) return console.log("删除失败", err.sqlMessage);
  console.log(results[0]);
}