背景
Cloudflare D1 是一个基于 Sqlite 的分布式数据库,在全球范围支持较好的读写性能,同时价格便宜且有大量免费额度。
Knex 是一个轻量但功能强大的数据库读写库,支持本地 Sqlite。
结合 Cloudflare D1 和 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')