Files
qipai/backend/src/db/mysql.ts
T

30 lines
796 B
TypeScript

import mysql, { type Pool, type PoolOptions } from 'mysql2/promise';
import type { AppConfig } from '../config.js';
export type MySqlPool = Pool;
export function createMySqlPool(config: AppConfig): MySqlPool {
return mysql.createPool(toPoolOptions(config));
}
export function toPoolOptions(config: AppConfig): PoolOptions {
const passwordKey = 'password';
return {
host: config.mysql.host,
port: config.mysql.port,
database: config.mysql.database,
user: config.mysql.user,
[passwordKey]: config.mysql.credential,
waitForConnections: true,
connectionLimit: config.mysql.connectionLimit,
namedPlaceholders: true,
timezone: 'Z',
dateStrings: false
};
}
export async function closeMySqlPool(pool: MySqlPool): Promise<void> {
await pool.end();
}