Socket
Socket
Sign inDemoInstall

pgnode

Package Overview
Dependencies
35
Maintainers
1
Versions
25
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    pgnode

PostgresSQL client to Nodejs servers


Version published
Weekly downloads
5
increased by66.67%
Maintainers
1
Created
Weekly downloads
 

Readme

Source

:package: postgresql

:package: pgnode

PostgresSQL client to Nodejs servers

Issues GitHub pull requests GitHub Downloads GitHub Total Downloads

GitHub release dependency pg


Report Bug Request Feature

Systems on which it has been tested.

Ubuntu Alpine_Linux

Debian CentOS

Windows Macos

Did you like the project? Please, considerate a donation to help improve!

PostgresSQL client to Nodejs servers

Connect your database easily using the pgnode package

Getting started

Installation

To install the module in your project just run the command below:

npm i pgnode

or

yarn add pgnode

Now in your project just import the module like this:

const pg = require("pgnode");

Or you can use import:

import pg from "pgnode";

Client connection

This is the simplest possible way to connect, query, and disconnect with async/await:

import pg, { Client, Pool } from "pgnode";

const config = {
  user: process.env.POSTGRES_USER,
  host: process.env.POSTGRES_HOST,
  database: process.env.POSTGRES_DATABASE,
  password: process.env.POSTGRES_PASSWORD,
  port: Number(process.env.POSTGRES_PORT),
};

const client = new pg.Client({ ...config });

function query(sql, params) {
  return client
    .connect()
    .then(() => client.query(sql, params))
    .then((res) => {
      client.end();
      return res;
    });
}

Transactions (tx)

Usage

import {tx, Client, Pool} from 'pgnode';

const client = new Client({
  user: process.env.POSTGRES_USER,
  host: process.env.POSTGRES_HOST,
  database: process.env.POSTGRES_DATABASE,
  password: process.env.POSTGRES_PASSWORD,
  port: Number(process.env.POSTGRES_PORT)
});

const pool = new Pool({...client});

export async function createTable(){
  return await tx(pool, async (db) => {
    await db.query(`
      CREATE TABLE IF NOT EXISTS test
      (
        id   SERIAL PRIMARY KEY,
        name TEXT NOT NULL
      );`);
  });
}

// or use a generator function to create the transactions

export function* createTableGenerator(){
  yield tx(pool, async (db) => {
    await db.query(`
      CREATE TABLE IF NOT EXISTS test
      (
        id   SERIAL PRIMARY KEY,
        name TEXT NOT NULL
      );`);
  });
  // create another transaction
  yield tx(pool, async (db) => {
    await db.query(`
      INSERT INTO test (name) VALUES ('test');`);
  });
}

Features

  • Pure JavaScript client and native libpq bindings share the same API
  • Support all tls.connect options being passed to the client/pool constructor under the ssl option.
  • Connection pooling
  • Extensible JS ↔ PostgreSQL data-type coercion
  • Supported PostgreSQL features
    • Parameterized queries
    • Named statements with query plan caching
    • Async notifications with LISTEN/NOTIFY
    • Bulk import & export with COPY TO/COPY FROM
    • Change default database name
    • make pg.Pool an es6 class
    • pg.Client and pg.Pool are ES6 classes
    • Support for pg.Client.prototype.query and pg.Pool.prototype.query
    • Support generator functions
    • Support for Nodejs ^v16x

Keywords

FAQs

Last updated on 13 Dec 2023

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc