Files
supabase/apps/docs/content/guides/database/postgres-js.mdx
Danny White d914b81f47 feat: consolidate settings (#37580)
* feat: move storage settings

* feat: redirect

* feat: database settings in service area

* feat: move data api settings

* fix: revert data API placement

* feat: minor UX touches

* fix: simplify configuration group

* feat: references to database settings

* feat: references to storage settings

* fix: redirects and formatting

* fix: Import StorageMenu dynamically to avoid SSR issues with useLocalStorage

* fix: move Data API closer to semantic siblings

* fix: revert smart comma

* Shift bucket sort logic into storage explorer store

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-08-04 16:21:54 +10:00

88 lines
2.0 KiB
Plaintext

---
id: 'postgres-js'
title: 'Postgres.js'
description: 'Postgres.js Quickstart'
breadcrumb: 'ORM Quickstarts'
hideToc: true
---
### Connecting with Postgres.js
[Postgres.js](https://github.com/porsager/postgres) is a full-featured Postgres client for Node.js and Deno.
<StepHikeCompact>
<StepHikeCompact.Step step={1}>
<StepHikeCompact.Details title="Install">
Install Postgres.js and related dependencies.
</StepHikeCompact.Details>
<StepHikeCompact.Code>
```shell
npm i postgres
```
</StepHikeCompact.Code>
</StepHikeCompact.Step>
<StepHikeCompact.Step step={2}>
<StepHikeCompact.Details title="Connect">
Create a `db.js` file with the connection details.
To get your connection details, go to your [`Database Settings`](https://supabase.com/dashboard/project/_/database/settings). Make sure `Use connection pooling` is enabled. Choose `Transaction Mode` if you're on a platform with transient connections, such as a serverless function, and `Session Mode` if you have a long-lived connection. Copy the URI and save it as the environment variable `DATABASE_URL`.
</StepHikeCompact.Details>
<StepHikeCompact.Code>
```ts
// db.js
import postgres from 'postgres'
const connectionString = process.env.DATABASE_URL
const sql = postgres(connectionString)
export default sql
```
</StepHikeCompact.Code>
</StepHikeCompact.Step>
<StepHikeCompact.Step step={3}>
<StepHikeCompact.Details title="Execute commands">
Use the connection to execute commands.
</StepHikeCompact.Details>
<StepHikeCompact.Code>
```ts
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
}
```
</StepHikeCompact.Code>
</StepHikeCompact.Step>
</StepHikeCompact>