Yet another SQL query builder
There are many sql query builders out there. But this one makes more sense to me 😉.
Sqlify v2.3 is out! What's new?
- better error handling
- more squel functions (
order,group)- (migrating from v1 to v2 is easier than you think. It just requires 2 mins, you bet!)
migration guide
🎏 This package is bound to strictly follow Semantic Versioning.
npm install --save sqlifyRead squel's documentation along with this. This package is a wrapper around squel
-
Helps you to build dynamic sql queries.
-
Example use case: suppose, you are getting a POST request to insert some data to your SQL database. You'll get the data in
req.bodyas{name: "Swat", age: 22, address: "ND"}. Now make the query like:let resource = { set: req.body } sqlify(chain, resource); // done!
const sql = require('sqlify').squel; const sqlify = require('sqlify').sqlify; let resource = { field: ['name', 'age', 'address'], where: { name: 'Swat', age: 22 } }; let chain = sql.select().from('users'); sqlify(chain, resource); chain.toString() // => SELECT name, age, address FROM users WHERE (name=Swat) AND (age=22)const sql = require('sqlify').squel; const sqlify = require('sqlify').sqlify; let resource = { set: { name: 'Swat', age: 22 } }; let chain = sql.insert().into('users'); sqlify(chain, resource); chain.toString() // => INSERT INTO users (name, age) VALUES ('Swat', 22)sqlify exposes a function and a module (squel).
The function receives 2 arguments. They are:
chainresource
const sql = require('sqlify').squel; const sqlify = require('sqlify').sqlify; const lme = require('lme') // not necessary. For printing things out.. ...chain is an instance of squel. For example,
... let chain = squel.select().from('users'); ...resource is an object which contains the data to build the query. Example:
... let resource = { field: ['name', 'age', 'address'], where: { name: 'Swa', age: 22 } }; ...Where, the properties of resource object (in the above case, field and where) are taken from the chain function names of the squel. Use them accordingly.
... sqlify(chain, resource); ...sqlify function wont return anything. It simply do things in in-place.
... // parse query let query = chain.toString(); // see it lme.s(query); // => SELECT name, age, address FROM users WHERE (name='Swa') AND (age=22) ...Since sqlify takes in and out chain functions, you can modify it even after sqlifying it.
💚 Find some time to contribute ⭐ to accommodate other functionalities from squel.
| cross-join | field | join | left-join | outer-join |
| returning | right-join | set | where | group |
| order | ||||
- change the way you
requirethe package:- in v1, you required
sqlifyalong withsquelas:const sqlify = require('sqlify'); const squel = require('squel'); ...
- in v2 you've to change that code into:
const sqlify = require('sqlify').sqlify; const squel = require('sqlify').squel; ...
- in v1, you required
- change in function name: change
fields:[]tofield:[]in theresourceobject.
Oh yes! it's that simple.
Just in case if you liked this package,
-
v2.3.1
- enabling Greeenkeeper, better docs
-
v2.3.0
- adds better error handling: (if an unsupported method is used, sqlify throws an err)
-
v2.2.0
- adds
orderfunction from squel-order - better docs
- adds
-
v2.1.1
- adds
groupfunction from squel-group - better docs
- adds
-
v2.0.0
-
v1.0.4
- bug fix with 's in select queries
-
v1.0.1, 1.0.2, 1.0.3
- bug fix (in
package.json) - better docs
- bug fix (in
-
v1.0.0
- initial release
MIT © Vajahath Ahmed

