easy-mysql-tx
v1.0.3
Published
MySQL2 lightweight wrapper supporting transactions and regular queries
Maintainers
Readme
easy-mysql-tx
A simple and lightweight MySQL helper for Node.js, supporting connection pooling and transactions.
With this package, you can quickly initialize a database connection pool and execute queries with or without transactions.
Installation
npm install easy-mysql-txMySQL driver (
mysql2) is already included as a dependency, no need to install separately.
Usage
Initialize Pool
const { initPool, DatabaseTransaction } = require('easy-mysql-tx');
// Configure your database connection
initPool({
host: 'localhost',
user: 'root',
password: 'your_password',
database: 'test_db',
waitForConnections: true,
connectionLimit: 10,
queueLimit: 0
});Simple Query
const db = new DatabaseTransaction();
async function run() {
const result = await db.executeQuery('SELECT * FROM users');
console.log(result);
}
run();Transactions
async function transactionExample() {
const db = new DatabaseTransaction();
try {
await db.beginTransaction();
await db.executeQuery('INSERT INTO users(name) VALUES(?)', ['Alice'], true);
await db.executeQuery('INSERT INTO users(name) VALUES(?)', ['Bob'], true);
await db.commitTransaction();
console.log('Transaction committed successfully');
} catch (err) {
await db.rollbackTransaction();
console.error('Transaction rolled back due to error:', err);
}
}
transactionExample();API
initPool(config)
Initialize the MySQL connection pool.
config: Object — MySQL connection options (host,user,password,database,connectionLimit, etc.).
DatabaseTransaction
Class for managing transactions and queries.
Methods
beginTransaction()— Start a transaction.commitTransaction()— Commit the transaction.rollbackTransaction()— Rollback the transaction.executeQuery(query, params = [], useTransaction = false)— Execute a SQL query.query— SQL string.params— Array of parameters.useTransaction— Boolean, whether to execute within an active transaction.
