node-sql-template

    0.2.3 • Public • Published

    SQLTemplate

    SQLTemplate is a simple SQL template engine and query runner for Node.js.

    Installation

    npm install node-sql-template mysql --save
    

    Usage

    Template rendering

    /sql/example-1.sql

    SELECT ?

    /index.js

     
    var
        path = require('path');
     
    var
        SQLTemplate = require('node-sql-template');
     
    var
        options = {
            template: {
                dir: path.resolve(__dirname, './sql'),
                ext: 'sql'
            }
        },
        template = SQLTemplate.forge(options),
     
        // escape values are optional
        // see https://github.com/felixge/node-mysql#escaping-query-values
        // see https://github.com/felixge/node-mysql#escaping-query-identifiers
        escape = [ 1 ];
     
    console.log(template.render('example-1', escape)); // SELECT 1

    Query execution w/ callback

    /sql/example-2.sql

    SELECT * FROM `player` WHERE `name` LIKE ?

    /index.js

     
    var
        path = require('path');
     
    var
        SQLTemplate = require('node-sql-template');
     
    var
        options = {
            template: {
                dir: path.resolve(__dirname, './sql'),
                ext: 'sql'
            },
            
            // https://github.com/felixge/node-mysql#connection-options
            connection: {
                host: 'localhost',
                user: 'root',
                password: 'root',
                multipleStatements: true
            },
     
            isDebug: true // sql will be output to the console upon #run()
        },
        template = SQLTemplate.forge(options);
     
    template.run('example-2', [ 'A%' ], function (error, rows) {
        console.log(error, rows);
    });

    Query execution w/o callback

    /sql/example-2.sql

    SELECT * FROM `player` WHERE `name` LIKE ?

    /index.js

     
    var
        path = require('path');
     
    var
        SQLTemplate = require('node-sql-template');
     
    var
        options = {
            template: {
                dir: path.resolve(__dirname, './sql'),
                ext: 'sql'
            },
     
            // https://github.com/felixge/node-mysql#connection-options
            connection: {
                host: 'localhost',
                user: 'root',
                password: 'root',
                multipleStatements: true
            },
     
            isDebug: true // sql will be output to the console upon #run()
        },
        template = SQLTemplate.forge(options),
     
        stream = template.run('example-2', [ 'A%' ]);
     
    stream
        .on('error', function (error) {
     
        })
        .on('result', function (row) {
     
        })
        .on('fields', function (fields) {
     
        })
        .on('end', function (end) {
     
        });

    Change Log

    0.2.3

    Fix package definition

    0.2.2

    Add #end() method to release connection pool.

    0.2.1

    Add isDebug option to output sql upon #run().

    0.2.0

    you now need to also npm install mysql package

    Install

    npm i node-sql-template

    DownloadsWeekly Downloads

    20

    Version

    0.2.3

    License

    MIT

    Last publish

    Collaborators

    • adigiovanni