sa-mysql

Soft-Artel Tools: MySQL Wrapper on async/await

Usage no npm install needed!

<script type="module">
  import saMysql from 'https://cdn.skypack.dev/sa-mysql';
</script>

README

Soft-Artel Tools: MySQL Wrapper on async/await

Create Connection: let db = await SAMysql.connect( config );

Close Connection: await db.end();

Methods to make queries to DB:

db.dbStructure();

let res = await db.dbStructure( database = this.database )

Get DataBase Structure in json style;

db.select();

let res = await db.select( {object} )

Make select to DB:

{object} Can contain keys with use to create query:

  • sql : "", // Ready SQL
  • params : [] || {}, // Mysql.format ? params inject to SQL

// Or build SQL by params [some of them can be undefined]:

  • table : "TableName", // Require param
  • fields : "*", // Option, Fields in result
  • where : "" || {}, // Where STRING or OBJ { field: value }
  • order : "" , // ORDER BY String
  • limit : 0 , // LIMIT, if == 1, result = {}

// Also you can group results after select by value of field:

  • groupResultBy : "" , // Field with value uses to group result
  • groupResultArrays : "" , // If true, result = { ${groupResultBy}: [] }

Examples:

let users = await db.select( { sql: 'SELECT * FROM users;', groupResultBy:'ID' } );

Get all users in object { ID1: User1, ID2: User2, ... }

The same as:

let users = await db.select( { table: 'users', groupResultBy:'ID' } );

Get all users in object { ID1: User1, ID2: User2, ... }

if Limit set to 1 - result by Object = first row

let user = await db.select( { table: 'users', where:{ ID: 1 }, limit: 1 } );

user = User1

db.replace();

let res = await db.replace( table, data )

Make REPLACE query to DB:

  • table : "TableName", // Require param
  • data : {}, // Object data (keys mast by the same as fields in DB)

db.update();

let res = await db.update( table, data, where = null )

Make UPDATE query to DB:

  • table : "TableName", // Require param
  • data : {}, // Object data (keys mast by the same as fields in DB)
  • where : {}, // Where OBJ { field: value }

db.insert();

let res = await db.insert( table, data )

Make INSERT query to DB:

  • table : "TableName", // Require param
  • data : {}, // Object data (keys mast by the same as fields in DB)

db.delete();

let res = await db.delete( table, where, forceDelete = false)

Make DELETE query to DB:

  • table : "TableName", // Require param
  • where : {}, // Where OBJ { field: value }
  • forceDelete : {}, // if true where can be null, else - where require param