quickpostgres
TypeScript icon, indicating that this package has built-in type declarations

3.0.2 • Public • Published

Quickpostgres

Test NPM Publish (Release) NPM Publish (Dev)

An easy, beginner-friendly PostgreSQL database wrapper similar to quick.db.

Features

  • Near identical syntax to quick.db
  • Never worry about constant database corruptions again
  • Fully flexible, uses pg internally
  • Relies on ES6 promises (async/await, .then())

If you don't know about quick.db, quickpostgres also has:

  • Persistent storage - all data is stored on your PostgreSQL database
  • Easy to setup - All you need is a PostgreSQL database to setup
  • Beginner friendly - Use simple syntax with dot notation
  • No learning curve - 0 learning curve if you're coming from quick.db or quickmongo

Installation

You can easily install quickpostgres using your preferred package manager.

npm install quickpostgres
# or
yarn add quickpostgres
# or
pnpm add quickpostgres

Requirements

  • Node.js 14 or above
  • A PostgreSQL database

Usage

Quickpostgres has similar (if not almost identical) syntax to quick.db. You can refer to their documentation if you are getting stuck.

Note: Quickpostgres is built on top of promises, meaning you need to resolve them first using .then() or await to get their returned data.

// Import quickpostgres
const { Client } = require("quickpostgres");

// Create a new client using the default values on localhost
const dbUrl = "postgresql://postgres:<password>@localhost:5432/postgres";
const db = new Client(dbUrl);

(async () => {
  // Connect to your client
  await db.connect();

  // 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"]

  // End the database connection
  await db.end();
})();

Support

For now, please use GitHub discussions if you need any support.

I may consider opening a Discord support server soon, but this is not guranteed.

Contributing

You must adhere to the code of conduct when interacting within the quickpostgres repository.

If you spot a bug or you have a feature request, please open a GitHub issue, or if you'd like to write some code, you can open a pull request.

If you spot a security vulnerability, please contact me.

Notes

  • Some users consider quick.db non-suitable in the long term, reason being it uses SQLite, and is not easily scalable. However, since quickpostgres uses PostgreSQL, one of the best production-grade database system out there, quickpostgres is suitable for production usage, in terms of performance.
  • Quickpostgres is meant for beginners, and uses a JSON-feeling database. If you want to use the full advantages of PostgreSQL, we highly recommend you switching to something else.

License

Apache License 2.0

Versions

Current Tags

Version History

Package Sidebar

Install

npm i quickpostgres

Weekly Downloads

42

Version

3.0.2

License

Apache-2.0

Unpacked Size

108 kB

Total Files

64

Last publish

Collaborators

  • goddere2d