npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

mysql-database

v1.3.2

Published

Easily modify your MySQL database data with easy functions

Downloads

117

Readme

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 ([email protected])