0.7.4 • Published 7 years ago

mariadb-transact v0.7.4

Weekly downloads
24
License
-
Repository
github
Last release
7 years ago

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.

0.7.4

7 years ago

0.7.3

8 years ago

0.7.2

8 years ago

0.7.1

8 years ago

0.7.0

8 years ago

0.6.2

9 years ago

0.6.1

9 years ago

0.6.0

9 years ago

0.5.0

9 years ago

0.4.0

10 years ago