mirror of
https://github.com/MarSeventh/CloudFlare-ImgBed.git
synced 2026-04-25 22:54:52 +00:00
debug:添加测试数据库
This commit is contained in:
109
functions/api/debug/database-test.js
Normal file
109
functions/api/debug/database-test.js
Normal file
@@ -0,0 +1,109 @@
|
||||
/**
|
||||
* 数据库功能测试工具
|
||||
*/
|
||||
|
||||
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'
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user