Private quick.db module for ByteBlaze, all credits keeped
npm install dreamvast.quick.dbbash
npm i quick.db
`
Mac Prerequisites
`bash
1. Install XCode
2. Run npm i -g node-gyp in terminal
3. Run node-gyp --python /path/to/python in terminal
`
> If you're having troubles installing, please follow this troubleshooting guide.
> Windows users may need to do additional steps listed here.
Example With Sqlite (Default driver)
> NOTE: In order to use this driver, install npm i better-sqlite3 separately.
`js
const { QuickDB } = require("quick.db");
const db = new QuickDB(); // will make a json.sqlite in the root folder
// if you want to specify a path you can do so like this
// const db = new QuickDB({ filePath: "source/to/path/test.sqlite" });
(async () => {
// Init the database, this is always needed!
await db.init();
// self calling async function just to get async
// Setting an object in the database:
await db.set("userInfo", { difficulty: "Easy" });
// -> { difficulty: 'Easy' }
// Getting an object from the database:
await db.get("userInfo");
// -> { difficulty: 'Easy' }
// Getting an object property from the database:
await db.get("userInfo.difficulty");
// -> 'Easy'
// Setting an object in the database:
await db.set("userInfo", { difficulty: "Easy" });
// -> { difficulty: 'Easy' }
// Pushing an element to an array (that doesn't exist yet) in an object:
await db.push("userInfo.items", "Sword");
// -> { difficulty: 'Easy', items: ['Sword'] }
// Adding to a number (that doesn't exist yet) in an object:
await db.add("userInfo.balance", 500);
// -> { difficulty: 'Easy', items: ['Sword'], balance: 500 }
// Repeating previous examples:
await db.push("userInfo.items", "Watch");
// -> { difficulty: 'Easy', items: ['Sword', 'Watch'], balance: 500 }
await db.add("userInfo.balance", 500);
// -> { difficulty: 'Easy', items: ['Sword', 'Watch'], balance: 1000 }
// Fetching individual properties
await db.get("userInfo.balance"); // -> 1000
await db.get("userInfo.items"); // ['Sword', 'Watch']
})();
`
Example With MySQLDriver
> NOTE: In order to use this driver, install npm i mysql2 separately.
`js
const { QuickDB } = require("quick.db");
const { MySQLDriver } = require("quick.db/MySQLDriver");
(async () => {
const mysqlDriver = new MySQLDriver({
host: "localhost",
user: "me",
password: "secret",
database: "my_db",
});
const db = new QuickDB({ driver: mysqlDriver });
await db.init(); // Connects and setup the database
// Now you can use quick.db as normal
await db.set("userInfo", { difficulty: "Easy" });
// -> { difficulty: 'Easy' }
})();
`
Example With PostgresDriver
> NOTE: In order to use this driver, install npm i pg separately.
`js
const { QuickDB } = require("quick.db");
const { PostgresDriver } = require("quick.db/PostgresDriver");
(async () => {
const postgresDriver = new PostgresDriver({
host: "localhost",
user: "me",
password: "secret",
database: "my_db",
});
const db = new QuickDB({ driver: postgresDriver });
await db.init(); // Connects and setup the database
// Now you can use quick.db as normal
await db.set("userInfo", { difficulty: "Easy" });
// -> { difficulty: 'Easy' }
})();
`
Example With MongoDriver
> NOTE: In order to use this driver, install npm i mongoose separately.
`js
const { QuickDB } = require("quick.db");
const { MongoDriver } = require("quick.db/MongoDriver");
(async () => {
const mongoDriver = new MongoDriver("mongodb://localhost/quickdb");
const db = new QuickDB({ driver: mongoDriver });
await db.init(); // Connects and setup the database
// Now you can use quick.db as normal
await db.set("userInfo", { difficulty: "Easy" });
// -> { difficulty: 'Easy' }
await mongoDriver.close();
// disconnect from the database
})();
`
Example With JSONDriver
> NOTE: In order to use this driver, install npm i write-file-atomic separately.
`js
const { QuickDB } = require("quick.db");
const { JSONDriver } = require("quick.db/JSONDriver");
const jsonDriver = new JSONDriver();
const db = new QuickDB({ driver: jsonDriver });
// Init the database, this is always needed!
await db.init();
await db.set("userInfo", { difficulty: "Easy" });
`
Example With MemoryDriver
> Note: In-memory database is not persistent and is suitable for temporary caching.
`js
const { QuickDB } = require("quick.db");
const { MemoryDriver } = require("quick.db/MemoryDriver");
const memoryDriver = new MemoryDriver();
const db = new QuickDB({ driver: memoryDriver });
// Init the database, this is always needed!
await db.init();
await db.set("userInfo", { difficulty: "Easy" });
``