https://github.com/mywaiting/psql
Deno implementation of the Postgresql client-server protocol
https://github.com/mywaiting/psql
deno postgres postgresql
Last synced: 2 months ago
JSON representation
Deno implementation of the Postgresql client-server protocol
- Host: GitHub
- URL: https://github.com/mywaiting/psql
- Owner: mywaiting
- License: mit
- Created: 2021-03-10T01:21:03.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-06-27T10:02:21.000Z (almost 5 years ago)
- Last Synced: 2025-08-28T19:58:03.210Z (10 months ago)
- Topics: deno, postgres, postgresql
- Language: TypeScript
- Homepage:
- Size: 284 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# psql
Deno implementation of the Postgresql frontend-backend/client-server protocol
## Getting started
```typescript
// deno run --allow-net --allow-read --unstable mod.ts
import {
Client,
ObjectCursor
} from 'https://deno.land/x/psql/mod.ts'
const client = new Client({
host: 'localhost',
port: 5432,
user: 'postgres',
password: 'postgres'
})
await client.connect()
// simple query, result as array with default cursor
{
const cursor = client.cursor()
const result = await cursor.query('select id, name from people')
console.log(result) // [[1, 'john'], [2, 'lucy'], ...]
}
// simple query with paramters, result as object with ObjectCursor
// You play `psql` with with `es6 tagged template string`, which looks like magic.
{
const objectCursor = client.cursor(ObjectCursor)
// const result = await objectCursor.query('select id, name from people where id < $1', [3, ])
const result = await objectCursor.query`select id, name from people where id < ${3}`
console.log(result) // [{id: 1, name: 'john'}, {id: 2, name: 'lucy'}]
}
// insert with paramters, return last insert id
{
const cursor = client.cursor()
const sql = `insert into people (name, ) values ($1, ) returning id`
const result = await cursor.query(sql, ['david'])
console.log(result) // 3
}
await client.close()
```