1.1.0 • Published 4 months ago

@evershop/postgres-query-builder v1.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

PostgreSQL query builder for Node

A PostgreSQL query builder for NodeJS.

Installation

npm install @evershop/postgres-query-builder

Usage guide

It implements async/await.

Simple select

const {select} = require('@evershop/postgres-query-builder')

const products = await select("*")
.from("product")
.where("product_id", ">", 1)
.execute(pool);

More complex where

const {select} = require('@evershop/postgres-query-builder')

const products = await select("*")
.from("product")
.where("product_id", ">", 1)
.and("sku", "LIKE", "sku")
.execute(pool);

Event more complex where

const {select} = require('@evershop/postgres-query-builder')

const query = select("*").from("product");
query.where("product_id", ">", 1).and("sku", "LIKE", "sku");
query.orWhere("price", ">", 100);

const products = await query.execute(pool);

Join table

const {select} = require('@evershop/postgres-query-builder')

const query = select("*").from("product");
query.leftJoin('price').on('product.`product_id`', '=', 'price.`product_id`');
query.where("product_id", ">", 1).and("sku", "LIKE", "sku");
query.andWhere("price", ">", 100);

const products = await query.execute(pool);

Insert&update

```javascript
const {insert} = require('@evershop/postgres-query-builder')

const query = insert("user")
.given({name: "David", email: "email@email.com", "phone": "123456", status: 1, notExistedColumn: "This will not be a part of the query"});
await query.execute(pool);
const {update} = require('@evershop/postgres-query-builder')

const query = update("user")
.given({name: "David", email: "email@email.com", "phone": "123456", status: 1, notExistedColumn: "This will not be a part of query"})
.where("user_id", "=", 1);
await query.execute(pool);

Working with transaction

const { Pool } = require('pg');
const {insert, getConnection, startTransaction, commit, rollback} = require('@evershop/postgres-query-builder');

const pool = new Pool(connectionSetting);

// Create a connection from the pool
const connection = await getConnection(pool);

// Start a transaction
await startTransaction(connection);
try {
  await insert("user")
        .given({name: "David", email: "email@email.com", "phone": "123456", status: 1, notExistedColumn: "This will not be a part of the query"})
        .execute(connection);
  await commit(connection);
} catch(e) {
  await rollback(connection);
}

Security

All user provided data will be escaped.

1.1.0

4 months ago

1.0.10

5 months ago

1.0.9

7 months ago

1.0.8

9 months ago

1.0.7

9 months ago

1.0.6

10 months ago

1.0.5

11 months ago

1.0.3

11 months ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago