deno-postgres
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><</mo></mrow><annotation encoding="application/x-tex">1 AND age < </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"><</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><</mo></mrow><annotation encoding="application/x-tex">1 AND age < </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"><</span></span></span></span>2;",
args: [10, 20]
});
console.log(result.rows);