mysql-database

1.3.2 • Public • Published

MySQL Database


Table of contents

About

  • Easily modify your MySQL database data with easy functions
  • Useful for websites & large projects where it makes managing data easier & faster
  • Supports the Promise-API, you will be able to use .then, .catch, await, etc...
  • & more...

Installation

npm i mysql-database@latest

Documentation

View Documentation

Events

[Note]: Events are only emitted if the action is taken from the library, which means if you manage the database from other connection, events would not work

  • connected (connection)
  • dataModification (event object)
  • tableCreate (table)
  • tableDelete (table)
  • tableClear (table)
  • tableRename (oldName, newName)
const MySQL = require('mysql-database');
const database = new MySQL();

// Create Your Own Connection
run();
async function run(){
	let db = await database.connect({ // creates a database connection
		host: 'localhost',
		port: '3306', // the default is 3306
		user: 'root',
		password: '',
		database: 'my_database',
		charset: 'utf8mb4'
	});
	
	db.on('connected', async connection => { // database connected event
		console.log('Database Connected');
	});
	
	db.on('dataModification', async event => { // data changes & modifications event
		console.log(event);
		/*
		{
			oldData: 'bar',
			newData: 'bar2',
			type: 'UPDATE',
			table: 'test_table',
			modifiedAt: 1653815607288
		}
		*/
	});
	
	db.on('tableCreate', async table => {
		console.log(`Table ${table} Created`);
	});
	
	db.on('tableDelete', async table => {
		console.log(`Table ${table} Deleted`);
	});
	
	db.on('tableClear', async table => {
		console.log(`Table ${table} Data Cleared`);
	});
	
	db.on('tableRename', async (oldName, newName) => {
		console.log(`Table renamed from ${oldName} to ${newName}`);
	});
}

Methods

  • set (table, key, value)
await db.set('my_table', 'foo', 'bar');
// -> Stores 'bar' in 'foo' key name in the table 'my_table'
  • get (table, key)
await db.get('my_table', 'foo');
// -> Gets foo key name value (which is bar) in the table 'my_table'
  • exists (table, key)
await db.exists('my_table', 'foo');
// -> Checks if a specific data exists
  • base_set (table, key, value)
await db.base_set('my_table', 'foo', 'bar');
// -> Stores 'bar' in 'foo' key name in the table 'my_table' but base encrypted
  • base_get (table, key)
await db.base_get('my_table', 'foo');
// -> Gets foo key name value (which is bar) in the table 'my_table' for encrypted rows using base_set method
  • push (table, array, value)
await db.push('my_table', 'fruits', 'banana');
// -> pushs 'banana' to 'fruits' array in 'my_table' table
  • pull (table, array, value)
await db.pull("my_table", "fruits", "banana");
// -> pulls FIRST 'banana' from 'fruits' in 'my_table'
await db.pull("my_table", "fruits", "banana", "all");
// -> pulls ALL 'banana' from 'fruits' in 'my_table'
  • includes (table, array, value)
await db.includes("my_table", "fruits", "banana");
// -> Checks if the array includes provided value
  • add (table, key, number)
await db.add("my_table", "price", 10);
// -> add 10 to price in 'my_table' table
  • sub (table, key, number)
await db.sub("my_table", "price", 5);
// -> subtracts 5 from price - the remaining is 5 from price in 'my_table' table
  • all (table)
await db.all("my_table");
// -> retutn all the data in 'my_table' table
  • delete (table, key)
await db.delete("my_table", "foo");
// -> delete foo key in 'my_table' table
  • tables ()
await db.tables();
// -> return array of all tables existed in the database
  • rename (table, new_table_name)
await db.rename("my_table", "new_name");
// -> renames table name
  • stats (table)
await db.stats("my_table");
// -> return table info
  • query (query)
await db.query("DROP TABLE my_table;")
// -> executes a SQL query
  • auto_increment (table, number)
await db.auto_increment("my_table", 5);
// -> sets 'my_table' table auto increment to 5
  • create (table)
await db.create("table_name");
// -> Create empty table with "table_name" name without inserting any data to it
  • drop (table)
await db.drop("table_name");
// -> deletes the table 'table_name'
  • clear (table)
await db.clear("table_name");
// -> clears all 'table_name' table rows & data
  • variables (variables_object)
await db.variables({ 
	max_connections: 100000,
	max_connect_errors: 100000,
	wait_timeout: 60
});
// -> modifies any global variable
  • ping ()
await db.ping();
// -> gets database ping (in ms)
  • process ()
await db.process();
// -> returns the processes/connections list
  • create_db (database_name)
await db.create_db("second_db");
// -> creates a separate database on the server

// -> you need to create a new connection manually after creating a new database
const secondDB = new MySQL();
let newDb = await secondDB.connect({
	host: 'localhost',
	port: '3306',
	user: 'root',
	password: '',
	database: 'second_db',
	charset: 'utf8mb4',
});
// note: if you had an old events, you need to re-register the events since this is a new class created
newDb.on('connected', async connection => {
	console.log('New Database Connected');
});

// now you can manage your "newDb" connection
await newDb.set("second_db_table", "key", "value");
await newDb.drop("second_db_table");
await newDb.end();
  • end ()
await db.end();
// -> closes the connection

Contributing

© mysql-database, 2021 - 2023 | TARIQ (contact@itariq.dev)

Package Sidebar

Install

npm i mysql-database

Weekly Downloads

10

Version

1.3.2

License

MIT

Unpacked Size

35.4 kB

Total Files

34

Last publish

Collaborators

  • tariqdev