sqlt
Simple SQL Templating helper inspired by Yesql
Give this library the location of a SQL template file, and it will return a function that you can call with a mysql or pg connection, an optional array of parameters, and a callback.
Installation
This module is installed via npm:
$ npm install sqlt
Example Usage
Simple SQL query with no params
Given a SQL template file located in /path/to/queries/getUsers.sql
SELECT*FROMusers;
You can get a function that is easily callable with a database connection handle, and get a callback:
var sqlt =mysql = ;var conn = mysql;var getUsers = ;;
SQL query with params
Given a SQL template file located in /path/to/queries/getUsersByIdOrEmail.sql
SELECT*FROMusersWHEREid = ? OR email = ?;
You can get a function that is easily callable with a database connection handle, an array of parameters, and get a callback:
var sqlt =mysql = ;var conn = mysql;var getUsersByIdOrEmail = ;;
Load a directory full of queries
Given a folder that contains a list of .sql
files (say the getUsers.sql
and
getUsersByIdOrEmail.sql
file above:
You can get a single object where each .sql
file is turned into a query
helping function:
var sqlt =mysql = ;var conn = mysql;var queries = sqltdir'/path/to/queries';queries;queries;
Streaming support
By not passing through a callback the query functions will return streams (depends on the underlying database library - eg below is for mysql).
Given a SQL template file located in /path/to/queries/getUsersByIdOrEmail.sql
SELECT*FROMusersWHEREid = ? OR email = ?;
You can get the stream by not passing through a callback:
var sqlt =mysql = ;var conn = mysql;var getUsersByIdOrEmail = ;var stream = ;stream;// stream.pipe()