This commit is contained in:
mtvpls
2026-01-30 16:40:55 +08:00
parent aa2fd66420
commit cbc52adc0e
+13 -2
View File
@@ -54,8 +54,14 @@ function getD1Adapter(): any {
// 生产环境:Cloudflare Workers/Pages // 生产环境:Cloudflare Workers/Pages
if (isCloudflare) { if (isCloudflare) {
// 创建一个懒加载的适配器,延迟到实际使用时才获取 D1 绑定
let cachedAdapter: any = null;
return new Proxy({}, {
get(target, prop) {
// 懒加载:第一次访问时才获取真实的 D1 适配器
if (!cachedAdapter) {
try { try {
// 在 Cloudflare 环境中,通过 getCloudflareContext 获取 D1 绑定
const { getCloudflareContext } = require('@opennextjs/cloudflare'); const { getCloudflareContext } = require('@opennextjs/cloudflare');
const { env } = getCloudflareContext(); const { env } = getCloudflareContext();
@@ -64,13 +70,18 @@ function getD1Adapter(): any {
} }
console.log('Using Cloudflare D1 database'); console.log('Using Cloudflare D1 database');
return new CloudflareD1Adapter(env.DB); cachedAdapter = new CloudflareD1Adapter(env.DB);
} catch (error) { } catch (error) {
console.error('Failed to initialize Cloudflare D1:', error); console.error('Failed to initialize Cloudflare D1:', error);
throw error; throw error;
} }
} }
return cachedAdapter[prop];
}
});
}
// 开发环境:better-sqlite3 // 开发环境:better-sqlite3
const Database = require('better-sqlite3'); const Database = require('better-sqlite3');
const path = require('path'); const path = require('path');