Postgres.js
Connecting with Postgres.js#
Postgres.js is a full-featured Postgres client for Node.js and Deno.
Install Postgres.js and related dependencies.
npm i postgresCreate a db.js file with the connection details.
To get your connection details, go to the Connect panel. Choose Transaction pooler if you're on a platform with transient connections, such as a serverless function, and Session pooler if you have a long-lived connection. Copy the URI and save it as the environment variable DATABASE_URL.
postgres.js pipelines queries by default. Combined with the shared pooler transaction mode, this can hang queries or return mismatched rows. postgres.js has no working option to turn pipelining off directly: max_pipeline: 0 breaks sql.begin() transactions instead, a known upstream bug.
For more about pipelining with postgres.js, contact support.
// db.jsimport postgres from 'postgres'const connectionString = process.env.DATABASE_URLconst sql = postgres(connectionString, { prepare: false })export default sqlUse the connection to execute commands.
import sql from './db.js'async function getUsersOver(age) { const users = await sql` select name, age from users where age > ${ age } ` // users = Result [{ name: "Walter", age: 80 }, { name: 'Murray', age: 68 }, ...] return users}