主题
mysql2
快速开始
shell
npm install mysql2封装函数
ts
import mysql from 'mysql2/promise';
import type { RowDataPacket } from 'mysql2/promise';
// 你可以根据实际情况将这些配置放到环境变量或配置文件中
const pool = mysql.createPool({
host: 'localhost',
user: 'root',
password: '123456',
database: 'database',
waitForConnections: true,
connectionLimit: 10,
queueLimit: 0,
});
// 获取一个连接
export async function getConnection() {
const connection = await pool.getConnection();
return connection;
}
// 释放连接
export function releaseConnection(connection: mysql.PoolConnection) {
if (connection && typeof connection.release === 'function') {
connection.release();
}
}
// 封装执行 SQL 语句的函数
export async function querySql<T extends RowDataPacket[] = RowDataPacket[]>(
sql: string,
params?: any[],
): Promise<T> {
const connection = await getConnection();
try {
const [rows] = await connection.query<T>(sql, params);
return rows;
} catch (error) {
console.log(error);
return error as T;
// throw error;
} finally {
releaseConnection(connection);
}
}使用函数
ts
import { querySql } from './database/index';
const res = querySql('select * from user where id = ?', ['1']);
console.log(res);
