Skip to content

Secure SQL query executing library to get rid of static endpoints. Works best with "query-face"-generated requests.

License

Notifications You must be signed in to change notification settings

enginustun/query-face-node

Repository files navigation

query-face-node · Build Status npm GitHub

This is query-face parser and executor library for Node.js that enables you to manipulate your data freely without endpoints.

  • install library.

    npm install --save query-face-node
    
  • setting up your configuration

    You need to define databases (at least one) based on knex documentation. We recommend that you use dotenv library to manage your environment variables.

    //databases.js
    require('dotenv').config();
    module.exports = {
      todoDB: require('knex')({
        client: process.env.DB_CLIENT,
        connection: {
          host: process.env.DB_HOST,
          port: process.env.DB_PORT,
          user: process.env.DB_USER,
          password: process.env.DB_PASSWORD,
          database: process.env.DB_DATABASE,
        },
        migrations: {
          tableName: process.env.DB_MIGRATION_TABLE,
          directory: process.env.DB_MIGRATION_DIRECTORY,
        },
        seeds: {
          directory: process.env.DB_SEEDS_DIRECTORY,
        },
      }),
    };

    Based on your database client configuration you need to install (at least) one of the following database drivers.

    npm install pg
    npm install sqlite3
    npm install mysql
    npm install mysql2
    npm install oracle
    npm install mssql
    

    Once you configure your databases, you can use queryFaceNode middlewares by setting queryFaceNode databases as follow. Also you need to add queryFaceNode middlewares to specific route you desired.

    // app.js
    const express = require('express');
    const app = express();
    const queryFaceNode = require('query-face-node');
    const databases = require('./databases');
    
    queryFaceNode.setDatabase('todoDB', databases.todoDB);
    
    app.use(express.json());
    app.post('/api', ...queryFaceNode);

    You can manage your migration and seed files by using knex CLI or API.

Documentation

About

Secure SQL query executing library to get rid of static endpoints. Works best with "query-face"-generated requests.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published