node.js 下 mysql2 的 CURD 功能极简封装
const mysql = require('mysql2/promise');
// 连接数据库配置
const dbConfig = {
host: 'localhost',
user: 'root',
password: 'password',
database: 'mydb'
};
// 创建数据库连接池
const connection = mysql.createConnection(dbConfig);
// 封装查询方法
const query = async (sql, values) => {
try {
const [rows, fields] = await connection.execute(sql, values);
return rows;
} catch (err) {
console.error(err);
return [];
}
};
// 封装创建(Create)方法
const create = (table, data) => {
const keys = Object.keys(data);
const values = keys.map((key) => `'${data[key]}'`);
const sql = `INSERT INTO ${table} (${keys.join(', ')}) VALUES (${values.join(', ')})`;
return query(sql);
};
// 封装更新(Update)方法
const update = (table, where, data) => {
const updates = Object.keys(data).map((key) => `${key} = '${data[key]}'`);
const sql = `UPDATE ${table} SET ${updates.join(', ')} WHERE ${where}`;
return query(sql);
};
// 封装删除(Delete)方法
const remove = (table, where) => {
const sql = `DELETE FROM ${table} WHERE ${where}`;
return query(sql);
};
// 封装查询(Read)方法
const get = (table, where = '1=1') => {
const sql = `SELECT * FROM ${table} WHERE ${where}`;
return query(sql);
};
// 使用示例
create('users', { name: 'Alice', email: 'alice@example.com' })
.then(console.log)
.catch(console.error);
update('users', 'id = 1', { name: 'Bob' })
.then(console.log)
.catch(console.error);
remove('users', 'id = 1')
.then(console.log)
.catch(console.error);
get('users')
.then(console.log)
.catch(console.error);
这个示例代码展示了如何使用mysql2/promise
库和Node.js异步功能来封装简单的CURD函数。这样可以使数据库操作更加直观和易于使用。这里的create
、update
、remove
和get
函数都是基于传入的表名和数据对应的SQL语句进行操作的。这样的封装可以提高代码的可读性和可维护性。
评论已关闭