首页 博客 演讲

如何让 Knex 在 Cloudflare 外使用 Cloudflare D1 数据库?

2024-09-07

背景

Cloudflare D1 是一个基于 Sqlite 的分布式数据库,在全球范围支持较好的读写性能,同时价格便宜且有大量免费额度。

Knex 是一个轻量但功能强大的数据库读写库,支持本地 Sqlite。

结合 Cloudflare D1 和 Knex,可以有效提升小项目的开发效率和降低服务成本。

方案

基于 cloudflare-d1-http-knex

安装

npm install cloudflare-d1-http-knex

# or
bun add cloudflare-d1-http-knex

使用

import { createConnection } from 'cloudflare-d1-http-knex';

// The connection function returns a Knex instance
const connection = createConnection({
  account_id: 'account_id',
  database_id: 'database_id',
  key: 'key',
});

const query = await connection('table_name').select('*');

单元测试

import { createConnection } from 'cloudflare-d1-http-knex'
import { mockedFetch } from 'cloudflare-d1-http-knex/mock'

const db = createConnection({
  account_id: 'xxxx',
  database_id: 'xxxx',
  key: 'xxxx',
  mockedFetch, // Using mocked fetch, it won't connect to real D1 database.
})

await db.raw('SELECT 1+1')

相关链接

查看全部文章