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)

Versions

Current Tags

VersionDownloads (Last 7 Days)Tag
1.3.29latest

Version History

VersionDownloads (Last 7 Days)Published
1.3.29
1.3.11
1.3.01
1.2.92
1.2.81
1.2.71
1.2.61
1.2.51
1.2.41
1.2.31
1.2.21
1.2.11
1.2.01
1.1.91
1.1.81
1.1.71
1.1.61
1.1.51
1.1.41
1.1.31
1.1.21
1.1.11
1.1.01
1.0.91
1.0.81
1.0.71
1.0.61
1.0.51
1.0.41
1.0.31
1.0.11
1.0.01

Package Sidebar

Install

npm i mysql-database

Weekly Downloads

41

Version

1.3.2

License

MIT

Unpacked Size

35.4 kB

Total Files

34

Last publish

Collaborators

  • tariqdev