Skip to content
This repository was archived by the owner on Jan 1, 2025. It is now read-only.

Repository files navigation

Quick.db Logo

Need a powerful, low-cost VPS for hosting your applications & bots 24/7? Check out our partner, Contabo! 🎉

Auto Generated Docsdocs
GuideGuide
Support:discord.gg/plexidev
NPM:npmjs.com/quick.db

Quick.db is an open-source package meant to provide an easy way for beginners and people of all levels to access & store data in a low to medium volume environment. All data is stored persistently via either better-sqlite3, mysql2, pg or mongoose and comes way various other quality-of-life features.

  • Persistent Storage - Data doesn't disappear through restarts
  • Multiple Drivers - SQLite, MySQL, Postgres, Mongoose
  • Works out of the box - No need to set up a database server, all the data is stored locally in the same project
  • Beginner Friendly - Originally created for use in tutorials, the documentation is straightforward and jargon-free
  • & more...

If you want to support me

"Buy Me A Coffee"

Installation

npm i quick.db

Mac Prerequisites
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.

const{ QuickDB }=require("quick.db");constdb=newQuickDB();// 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!awaitdb.init();// self calling async function just to get async// Setting an object in the database:awaitdb.set("userInfo",{difficulty: "Easy"});// -> { difficulty: 'Easy' }// Getting an object from the database:awaitdb.get("userInfo");// -> { difficulty: 'Easy' }// Getting an object property from the database:awaitdb.get("userInfo.difficulty");// -> 'Easy'// Setting an object in the database:awaitdb.set("userInfo",{difficulty: "Easy"});// -> { difficulty: 'Easy' }// Pushing an element to an array (that doesn't exist yet) in an object:awaitdb.push("userInfo.items","Sword");// -> { difficulty: 'Easy', items: ['Sword'] }// Adding to a number (that doesn't exist yet) in an object:awaitdb.add("userInfo.balance",500);// -> { difficulty: 'Easy', items: ['Sword'], balance: 500 }// Repeating previous examples:awaitdb.push("userInfo.items","Watch");// -> { difficulty: 'Easy', items: ['Sword', 'Watch'], balance: 500 }awaitdb.add("userInfo.balance",500);// -> { difficulty: 'Easy', items: ['Sword', 'Watch'], balance: 1000 }// Fetching individual propertiesawaitdb.get("userInfo.balance");// -> 1000awaitdb.get("userInfo.items");// ['Sword', 'Watch']})();

Example With MySQLDriver

NOTE: In order to use this driver, install npm i mysql2 separately.

const{ QuickDB }=require("quick.db");const{ MySQLDriver }=require("quick.db/MySQLDriver");(async()=>{constmysqlDriver=newMySQLDriver({host: "localhost",user: "me",password: "secret",database: "my_db",});constdb=newQuickDB({driver: mysqlDriver});awaitdb.init();// Connects and setup the database// Now you can use quick.db as normalawaitdb.set("userInfo",{difficulty: "Easy"});// -> { difficulty: 'Easy' }})();

Example With PostgresDriver

NOTE: In order to use this driver, install npm i pg separately.

const{ QuickDB }=require("quick.db");const{ PostgresDriver }=require("quick.db/PostgresDriver");(async()=>{constpostgresDriver=newPostgresDriver({host: "localhost",user: "me",password: "secret",database: "my_db",});constdb=newQuickDB({driver: postgresDriver});awaitdb.init();// Connects and setup the database// Now you can use quick.db as normalawaitdb.set("userInfo",{difficulty: "Easy"});// -> { difficulty: 'Easy' }})();

Example With MongoDriver

NOTE: In order to use this driver, install npm i mongoose separately.

const{ QuickDB }=require("quick.db");const{ MongoDriver }=require("quick.db/MongoDriver");(async()=>{constmongoDriver=newMongoDriver("mongodb://localhost/quickdb");constdb=newQuickDB({driver: mongoDriver});awaitdb.init();// Connects and setup the database// Now you can use quick.db as normalawaitdb.set("userInfo",{difficulty: "Easy"});// -> { difficulty: 'Easy' }awaitmongoDriver.close();// disconnect from the database})();

Example With JSONDriver

NOTE: In order to use this driver, install npm i write-file-atomic separately.

const{ QuickDB }=require("quick.db");const{ JSONDriver }=require("quick.db/JSONDriver");constjsonDriver=newJSONDriver();constdb=newQuickDB({driver: jsonDriver});// Init the database, this is always needed!awaitdb.init();awaitdb.set("userInfo",{difficulty: "Easy"});

Example With MemoryDriver

Note: In-memory database is not persistent and is suitable for temporary caching.

const{ QuickDB }=require("quick.db");const{ MemoryDriver }=require("quick.db/MemoryDriver");constmemoryDriver=newMemoryDriver();constdb=newQuickDB({driver: memoryDriver});// Init the database, this is always needed!awaitdb.init();awaitdb.set("userInfo",{difficulty: "Easy"});

About

An easy, open-source, Node.js database designed for complete beginners getting into the concept of coding.

Topics

Resources

Stars

331 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages