node-mysql-wrap
A lightweight wrapper for the node-mysql driver. Providing, select, insert, update, delete, row count, and support for promises.
npm install mysql-wrap
Instantiation
//create a node-mysql connectionvar mysql = ;var connection = mysql; //and pass it into the node-mysql-wrap constructorvar createMySQLWrap = ;var sql = ;
Enable connection pooling by passing a connection pool rather than a connection
//create a node-mysql poolvar mysql = ;var pool = mysql;//and pass it into the node-mysql-wrap constructorvar createMySQLWrap = ;var sql = ;
Pool Clusters with read write seperation is also supported
var poolCluster = mysql; poolCluster; var sql = ;
Methods
In general node-mysql-wrap exposes the same interface as node-mysql. All methods
take callbacks with the same function (err, res) {}
signature as node-mysql.
In addition all methods also return q promises.
In the following examples, parameters marked with an asterik (*) character are optional.
query(sqlStatement, *values, *callback)
sql;
query
may take a configuration object in place of the sqlStatement
parameter.
this object allows for node-mysql's nested table join api, as well as pagination.
sql;
one(sqlStatement, *values, *callback)
Works the same as sql.query except it only returns a single row instead of an array of rows. Adds a "LIMIT 1" clause if a LIMIT clause is not allready present in the sqlStatement.
select(table, *whereEqualsObject, *callback)
// equivalent to sql.query('SELECT * FROM fruit WHERE color = "yellow" AND isRipe = "true"')sql
selectOne(table, *whereEqualsObject, *callback)
Same as sql.select except selectOne returns a single row instead of an array of rows.
select
and selectOne
may take a configuration object in place of the table
parameter. The configuration object add pagination and/or restrict which fields
are selected.
sql;
insert(table, insertObject, *callback)
sql;
You can also pass sql.insert an array of insertObjects to insert multiple rows in a query
sql
replace(table, insertObject, *callback)
Supports Mysql "REPLACE INTO" syntax
sql;
save(table, insertObject, *callback)
Inserts a new row if no duplicate unique or primary keys are found, else it updates that row.
INSERT INTO fruit (uniqueKey, isRipe) VALUES (5, 0)ON DUPLICATE KEY UPDATE uniqueKey=5, isRipe=0
sql;
update(table, setValues, *whereEqualsObject, *callback)
sql
delete(table, *whereEqualsObject, *callback)
sql
Errors
Errors are the first parameter of a methods callback (same as in node-mysql), or using promises they are passed to the catch method
sql;
Error objects are wrapped in a custom Error object. A reference to this object
can be gotten at sql.Error
Transactions
The node-mysql transaction methods beginTransaction
, commit
, and rollback
are available, and return promises as well as take callbacks.
sql;
Other methods.
end, destroy, release, changeUser
same as in node-mysql. end
and changeUser
return a promise as well as taking
a callback.