mariadb-transact
v0.7.4
Published
A transaction manager for the mariasql module that uses promises.
Downloads
11
Maintainers
Readme
mariadb-transact
A transaction manager for the node.js MariaSQL module that uses promises. This module is essentially a convenience wrapper for node-mariasql with some extended functionality.
Install
npm install mariadb-transact
Example
CoffeeScript
TransactionManager = require "mariadb-transact"
sqlcfg =
user: "USER"
password: "PASSWORD"
host: "HOST"
db: "DATABASE"
metadata: true
transact = new TransactionManager(sqlcfg)
transact.init().then ->
transact.basic().then (sql) ->
sql.fetchArray("SHOW DATABASES")
.then (res) ->
console.log res
.then ->
transact.begin()
.then (sql) ->
sql.command("DELETE FROM mytable WHERE id=3")
.then (res) ->
console.log res
sql.commit()
.then ->
transact.close()
.catch (err) ->
console.error err.stack
JavaScript
var TransactionManager = require("mariadb-transact");
var sqlcfg = {
user: "USER",
password: "PASSWORD",
host: "HOST",
db: "DATABASE",
metadata: true
};
var transact = new TransactionManager(sqlcfg);
transact.init().then(function() {
return transact.basic().then(function(sql) {
return sql.fetchArray("SHOW DATABASES").then(function(res) {
return console.log(res);
});
}).then(function() {
return transact.begin();
}).then(function(sql) {
return sql.command("DELETE FROM mytable WHERE id=3").then(function(res) {
console.log(res);
return sql.commit();
}).then(function() {
return transact.close();
});
});
})["catch"](function(err) {
return console.error(err.stack);
});
API
require('mariadb-transact')
returns a TransactionManager object.
TransactionManager properties
- log - < Logger > - A Winston-style logging object. Default is a stub.
TransactionManager events
error(< Error >err) - An error occurred.
init() - The manager has been initialized.
TransactionManager methods
contructor(< object >config) - Create and return a new TransactionManager instance. The config object is equivalent to the Client config object in the node-mariasql library, but takes an additional parameter and extends on the metadata parameter:
metadata - < boolean > - Automatically convert result data into appropriate types. Default: false
poolsize - < integer > - Size of the connection pool. Default: 20
init() - < Promise >() - Initializes the database connection and returns a promise that fulfills when it is connected.
basic() - < Promise>(< Client >client) - Returns a promise that fulfills with a non-transaction-safe Client object.
begin() - < Promise>(< Client >client) - Returns a promise that fulfills with a transaction-safe Client object from the connection pool. Transaction-safe Client objects must always be completed using their commit or rollback method, otherwise they will not complete or return to the pool.
close() - < Promise >() - Closes connection and returns a promise that fulfills when complete.
Client methods
command(< string >query, < object >params) - < Promise >(< object >result) - Executes SQL query, returns promise that fulfills with a result object containing the following elements:
affectedRows - < integer > - Number of rows affected by the command.
insertId - < integer > - Last auto-increment ID of insert command.
numRows - < integer > - Number of returned rows.
commit() - < Promise >() - Commits a transaction. Promise fulfulls when done.
fetchArray(< string >sql, < object >params) - < Promise >(< Array >results) - Executes SQL query, returns promise that fulfills with a result array.
fetchOne(< string >sql, < object >params) - < Promise >(< object >result) - Executes SQL query, returns promise that fulfills with a single result object. This command always returns the first result row of the query.
rollback() - < Promise >() - Rolls back a transaction. Promise fulfulls when done.