3.0.0-d4 • Published 1 year ago

darksdb-dev v3.0.0-d4

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

Latest Release: 2.1.3

Dev Package

Main Package

What's New?

  • 3.0.0-d4:
    • Fix pool call

DarksDB

DarksDB is a simple database using node.js and mysql (v1)/promise-mysql(v2+) that aims to make writing SQL statements easier by providing simple methods like get() and update()

Installation

 $ npm i darksdb

Using DarksDB

// Get the DarkDB class
const { DarkDB } = require("./darkdb.js");
// Create a new database
const db = new DarkDB({
  host: "localhost",
  port: 3306,
  user: "example",
  password: "example", // Preferably have this in something like a .env file (for example process.env.db_pass)
  database: "example",
  table: "example",
});

await db.connect(); // You must call this otherwise an error will be thrown!

Important: You should use promises while using DarksDB (Async/Await)

Methods

  • db.setTable(): Set a new table
    • Takes in 1 argument, table
  • db.set(): Create a new record in the table with predefined values.
    • Takes in 2 arguments, keys[], and values[]
  • db.get(): Fetch the keys from all the records
    • Takes in 1 arguments, keys[]
  • db.getWhere(): Fetch the keys from all records that meet the where clauses
    • Takes in 2 arguments, keys[], and where[]
  • db.getAll(): Fetch all of the records and fields
    • Takes in 0 arguments
  • db.getAllWhere(): Fetch all of the records and fields that meet the where clauses
    • Takes in 1 argument, where[]
  • db.update(): Update all the records in that table with the new value
    • Takes in 2 arguments, keys[] and values[]
  • db.updateWhere(): Update all the records that meet the where clauses
    • Takes in 3 arguments, keys[], values[], and where[]
  • db.delete(): Delete all the records that meet the where clauses
    • Takes in 1 argument, where[]
  • db.deleteAll(): Delete ALL the records in a table;
    • Takes in 0 arguments
  • db.runStatement(): Run any SQL statement
    • Takes in 1 argument, statement
  • db.has(): Checks how many records there are with the key and value
    • Takes in 2 arguments, key and value

How to use where

To use where, each "where" of yours needs its own object following this data structure:

{ name: 'WHERENAME', value: 'WHEREVALUE' }

See Examples for more information.

Examples

const { DarkDB } = require('darksdb')
const db = new DarkDB({
    host    : 'localhost'
    port    : 3306
    user    : 'example'
    password: 'example'
    database: 'example'
    table   : 'example'
});

await db.connect();

await db.set([`one`, `two`, `three`], [1, 2, 3]);
// Add more data to the db
await db.set([`one`, `two`, `three`], [10, 20, 30]);
await db.set([`one`, `two`, `three`], [100, 200, 300]);
// Creates a simple database and makes this database
// one     two    three
//   1       2       3
//  10      20      30
// 100     200     300

Say you needed to get values: You can use any one of get(), getWhere(), getAll(), or getAllWhere()

await db.get([`one`]) // => [1, 10, 100];
await db.getWhere([`two`], [{ name: `one`, value: 10 }]) // => [20]
await db.getAll() // => entire database
await db.getAllWhere([{name: `three`, value: 300 }]) => // => [100, 200, 300]

Now what if you changed a value, and it needs to go back into the database. We can use update() or updateWhere()

await db.update([`one`], [10]); // =>
// one     two    three
//  10       2       3
//  10      20      30
//  10     200     300

await db.updateWhere([`two`], [2000], [{ name: `three`, value: 3 }]); // =>
// one     two    three
//   1    2000       3
//  10      20      30
// 100     200     300

Next you decide you need to delete some data. We can use delete() or deleteAll()

await db.delete([{ name: `two`, value: 20 }]); // =>
// one     two    three
//  10       2       3
//  10     200     300

await db.deleteAll(); // =>
// one     two    three
//      (No Data)

You can run an arbitrary SQL statement, such as SELECT COUNT(*) FROM numbers WHERE 'one' = 10 by using runStatement()

await db.runStatement(`SELECT COUNT(*) FROM numbers WHERE 'one' = 10`); // => 1

There is also db.has(), which checks if a record with the specific key and value exists

await db.has(`three`, 30); // => true

Keep in mind, optimally you should use your primary key in has(), however it is not required

Changelog:

  • 2.1.3:

    • Update TS type declarations
  • 2.1.2:

    • Add a check to see if a connection exists
  • 2.1.1:

    • Condensing where for loop into a sepeerate function
    • Update all functions using where for loops
    • Fixed delete()
    • Update documentation to add changelog/what's new?
  • 2.1.0:

    • Condensing keys for loop into a seperate function
    • Update all functions using keys for loops
    • Update documentation to add links to the main and dev packages
  • 2.0.5:

    • Switch to Promise-MySQL
    • Rewrite a lot of the code to run better
    • Fix has()
    • Add documentation
  • 1.0.0 - 1.0.3:

    • Initial release
    • Small upgrades
3.0.0-d4

1 year ago

3.0.0-d3

1 year ago

3.0.0-d2

1 year ago

3.0.0-d1

1 year ago

3.0.0-d0

1 year ago

2.1.3

1 year ago

2.1.2

1 year ago

2.1.2-devbuild2

1 year ago

2.1.2-devbuild1

1 year ago

2.1.2-devbuild0

1 year ago

2.1.1

1 year ago

2.1.1-1

1 year ago

2.1.1-0

1 year ago

2.1.0-20

1 year ago

2.1.0-19

1 year ago

2.1.0-18

1 year ago

2.1.0-17

1 year ago

2.1.0-16

1 year ago

2.1.0-15

1 year ago

2.1.0-14

1 year ago

2.1.0-13

1 year ago

2.1.0-12

1 year ago

2.1.0-11

1 year ago

2.1.0-10

1 year ago

2.1.0-9

1 year ago

2.1.0-8

1 year ago

2.1.0-7

1 year ago

2.1.0-6

1 year ago

2.1.0-5

1 year ago

2.1.0-4

1 year ago

2.1.0-3

1 year ago

2.1.0-2

1 year ago

2.1.0-1

1 year ago

2.1.0-0

1 year ago

2.0.5-2

1 year ago

2.0.5-1

1 year ago

2.0.5

1 year ago