Latest Release: 2.1.3
What's New?
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
const { DarkDB } = require("./darkdb.js");
const db = new DarkDB({
host: "localhost",
port: 3306,
user: "example",
password: "example",
database: "example",
table: "example",
});
await db.connect();
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
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;
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]);
await db.set([`one`, `two`, `three`], [10, 20, 30]);
await db.set([`one`, `two`, `three`], [100, 200, 300]);
Say you needed to get values:
You can use any one of get()
, getWhere()
, getAll()
, or getAllWhere()
await db.get([`one`])
await db.getWhere([`two`], [{ name: `one`, value: 10 }])
await db.getAll()
await db.getAllWhere([{name: `three`, value: 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]);
await db.updateWhere([`two`], [2000], [{ name: `three`, value: 3 }]);
Next you decide you need to delete some data. We can use delete()
or deleteAll()
await db.delete([{ name: `two`, value: 20 }]);
await db.deleteAll();
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`);
There is also db.has()
, which checks if a record with the specific key and value exists
await db.has(`three`, 30);
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