Module

x/postgres/docs/README.md

PostgreSQL driver for Deno
Go to Latest
File

deno-postgres

Build Status Gitter chat

PostgreSQL driver for Deno.

deno-postgres is being developed based on excellent work of node-postgres and pq.

Example

import { Client } from "https://deno.land/x/postgres/mod.ts";

async function main() {
  const client = new Client({
    user: "user",
    database: "test",
    host: "localhost",
    port: "5432"
  });
  await client.connect();
  const result = await client.query("SELECT * FROM people;");
  console.log(result.rows);
  await client.end();
}

main();

API

deno-postgres follows node-postgres API to make transition for Node devs as easy as possible.

Connecting to DB

If any of parameters is missing it is read from environmental variable.

import { Client } from "https://deno.land/x/postgres/mod.ts";

let config;

config = {
  host: "localhost",
  port: "5432",
  user: "user",
  database: "test",
  application_name: "my_custom_app"
};
// alternatively
config = "postgres://user@localhost:5432/test?application_name=my_custom_app";

const client = new Client(config);
await client.connect();
await client.end();

Queries

Simple query

const result = await client.query("SELECT * FROM people;");
console.log(result.rows);

Parametrized query

const result = await client.query(
  "SELECT * FROM people WHERE age > <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mn>1</mn><mi>A</mi><mi>N</mi><mi>D</mi><mi>a</mi><mi>g</mi><mi>e</mi><mo>&lt;</mo></mrow><annotation encoding="application/x-tex">1 AND age &lt; </annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8778em;vertical-align:-0.1944em;"></span><span class="mord">1</span><span class="mord mathnormal">A</span><span class="mord mathnormal" style="margin-right:0.10903em;">N</span><span class="mord mathnormal" style="margin-right:0.02778em;">D</span><span class="mord mathnormal">a</span><span class="mord mathnormal" style="margin-right:0.03588em;">g</span><span class="mord mathnormal">e</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">&lt;</span></span></span></span>2;",
  10,
  20
);
console.log(result.rows);

// equivalent using QueryConfig interface
const result = await client.query({
  text: "SELECT * FROM people WHERE age > <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mn>1</mn><mi>A</mi><mi>N</mi><mi>D</mi><mi>a</mi><mi>g</mi><mi>e</mi><mo>&lt;</mo></mrow><annotation encoding="application/x-tex">1 AND age &lt; </annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8778em;vertical-align:-0.1944em;"></span><span class="mord">1</span><span class="mord mathnormal">A</span><span class="mord mathnormal" style="margin-right:0.10903em;">N</span><span class="mord mathnormal" style="margin-right:0.02778em;">D</span><span class="mord mathnormal">a</span><span class="mord mathnormal" style="margin-right:0.03588em;">g</span><span class="mord mathnormal">e</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">&lt;</span></span></span></span>2;",
  args: [10, 20]
});
console.log(result.rows);