mirror of
https://github.com/ZSCGR/CloudFlare-ImgBed.git
synced 2026-08-16 21:53:43 +08:00
110 lines
3.3 KiB
JavaScript
110 lines
3.3 KiB
JavaScript
/**
|
|
* 数据库功能测试工具
|
|
*/
|
|
|
|
import { getDatabase } from '../../utils/databaseAdapter.js';
|
|
|
|
export async function onRequest(context) {
|
|
var env = context.env;
|
|
|
|
try {
|
|
var results = {
|
|
databaseType: null,
|
|
listTest: null,
|
|
getTest: null,
|
|
putTest: null,
|
|
errors: []
|
|
};
|
|
|
|
// 测试数据库连接
|
|
try {
|
|
var db = getDatabase(env);
|
|
results.databaseType = db.constructor.name || 'Unknown';
|
|
} catch (error) {
|
|
results.errors.push('Database connection failed: ' + error.message);
|
|
return new Response(JSON.stringify(results, null, 2), {
|
|
status: 500,
|
|
headers: { 'Content-Type': 'application/json' }
|
|
});
|
|
}
|
|
|
|
// 测试list方法
|
|
try {
|
|
var listResult = await db.list({ limit: 5 });
|
|
results.listTest = {
|
|
success: true,
|
|
hasKeys: !!(listResult && listResult.keys),
|
|
isArray: Array.isArray(listResult.keys),
|
|
keyCount: listResult.keys ? listResult.keys.length : 0,
|
|
structure: listResult ? Object.keys(listResult) : []
|
|
};
|
|
} catch (error) {
|
|
results.listTest = {
|
|
success: false,
|
|
error: error.message
|
|
};
|
|
results.errors.push('List test failed: ' + error.message);
|
|
}
|
|
|
|
// 测试get方法
|
|
try {
|
|
var getResult = await db.get('test_key_that_does_not_exist');
|
|
results.getTest = {
|
|
success: true,
|
|
result: getResult,
|
|
isNull: getResult === null
|
|
};
|
|
} catch (error) {
|
|
results.getTest = {
|
|
success: false,
|
|
error: error.message
|
|
};
|
|
results.errors.push('Get test failed: ' + error.message);
|
|
}
|
|
|
|
// 测试put方法(使用临时键)
|
|
try {
|
|
var testKey = 'test_' + Date.now();
|
|
var testValue = 'test_value_' + Date.now();
|
|
await db.put(testKey, testValue);
|
|
|
|
// 立即读取验证
|
|
var retrievedValue = await db.get(testKey);
|
|
|
|
// 清理测试数据
|
|
await db.delete(testKey);
|
|
|
|
results.putTest = {
|
|
success: true,
|
|
valueMatch: retrievedValue === testValue,
|
|
testKey: testKey,
|
|
testValue: testValue,
|
|
retrievedValue: retrievedValue
|
|
};
|
|
} catch (error) {
|
|
results.putTest = {
|
|
success: false,
|
|
error: error.message
|
|
};
|
|
results.errors.push('Put test failed: ' + error.message);
|
|
}
|
|
|
|
return new Response(JSON.stringify(results, null, 2), {
|
|
headers: {
|
|
'Content-Type': 'application/json'
|
|
}
|
|
});
|
|
|
|
} catch (error) {
|
|
return new Response(JSON.stringify({
|
|
error: error.message,
|
|
stack: error.stack
|
|
}), {
|
|
status: 500,
|
|
headers: {
|
|
'Content-Type': 'application/json'
|
|
}
|
|
});
|
|
}
|
|
}
|