Contexte
Cloudflare D1 est une base de données distribuée basée sur Sqlite, offrant de bonnes performances de lecture et d’écriture à l’échelle mondiale, tout en étant économique et avec une généreuse offre gratuite.
Knex est une bibliothèque de lecture et d’écriture de base de données légère mais puissante, qui prend en charge Sqlite local.
En combinant Cloudflare D1 et Knex, on peut efficacement améliorer l’efficacité du développement de petits projets et réduire les coûts de service.
Solution
Basée sur cloudflare-d1-http-knex.
Installation
npm install cloudflare-d1-http-knex
# or
bun add cloudflare-d1-http-knex
Utilisation
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('*');
Tests unitaires
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')