@shiyuhang0/serverless
Version: 
TiDB Cloud Serverless Driver
72 lines (48 loc) • 1.93 kB
Markdown
This driver is for serverless and edge compute platforms that require HTTP external connections, such as Vercel Edge Functions or Cloudflare Workers.
**Install**
You can install the driver with npm:
```bash
npm install @tidbcloud/serverless
```
**Query**
To query from TiDB Serverless, you need to create a connection first. Then you can use the connection to execute raw SQL queries. For example:
```ts
import { connect } from '@tidbcloud/serverless'
const conn = connect({url: 'mysql://username:password@host/database'})
const results = await conn.execute('select * from test where id = ?',[1])
```
**Transaction (Experimental)**
You can also perform interactive transactions with the serverless driver. For example:
```ts
import { connect } from '@tidbcloud/serverless'
const conn = connect({url: 'mysql://username:password@host/database'})
const tx = await conn.begin()
try {
  await tx.execute('insert into test values (1)')
  await tx.execute('select * from test')
  await tx.commit()
}catch (err) {
  await tx.rollback()
  throw err
}
```
**Edge example**
The serverless driver is suitable for the edge environments. See how to use it with Vercel Edge Functions:
```
import { NextResponse } from 'next/server';
import type { NextRequest } from 'next/server';
import { connect } from '@tidbcloud/serverless'
export const runtime = 'edge'
export async function GET(request: NextRequest) {
  const conn = connect({url: process.env.DATABASE_URL})
  const result = await conn.execute('show tables')
  return NextResponse.json({result});
}
```
See [TiDB Cloud Serverless Driver](https://docs.pingcap.com/tidbcloud/serverless-driver#edge-examples) documentation to learn more.
See [Configure TiDB Cloud Serverless Driver](https://docs.pingcap.com/tidbcloud/serverless-driver-config).
Apache 2.0, see [LICENSE](./LICENSE).