node-mysql-wrap-production
This project started from a stripped down version of node-mysql-wrap. The intention is to reduce complexity of implementation and improve confidence in production.
This version only accepts the poolCluster connection option, and only returns promises (no callbacks)
A lightweight wrapper for the node-mysql driver. Providing, select, insert, update, delete, row count, and support for promises.
npm install mysql-wrap-production
Instantiation
let pool = mysql.createPool(config.mysql); that.sql = createNodeMySQL(pool);
var sql = ;
Pool Clusters with read write seperation is also supported
var poolCluster = mysql; poolCluster; 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)
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;
queryStream(sqlStatement, *values)
sql;
one(sqlStatement, *values)
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)
// equivalent to sql.query('SELECT * FROM fruit WHERE color = "yellow" AND isRipe = "true"')sql
selectStream(table, *whereEqualsObject)
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