// 查询术数书内容的脚本 // 通过 Hyperdrive API 查询 NeonDB 中的术数书数据 const API_BASE_URL = 'https://hyperdrive.seekkey.tech'; // 通用请求函数 async function apiRequest(endpoint, options = {}) { const url = `${API_BASE_URL}${endpoint}`; const headers = { 'Content-Type': 'application/json', ...options.headers }; try { const response = await fetch(url, { ...options, headers }); if (!response.ok) { throw new Error(`HTTP ${response.status}: ${response.statusText}`); } const contentType = response.headers.get('content-type'); if (contentType && contentType.includes('application/json')) { return await response.json(); } else { return await response.text(); } } catch (error) { console.error(`Request failed for ${endpoint}:`, error.message); throw error; } } // 查询数据库表结构 async function queryTables() { console.log('\n📋 查询数据库表结构...'); try { const result = await apiRequest('/query-tables'); console.log('✅ 数据库表:', result); return result; } catch (error) { console.log('❌ 查询表结构失败:', error.message); return null; } } // 查询术数书内容 async function queryShushuBook(limit = 10) { console.log('\n📚 查询术数书内容...'); try { const result = await apiRequest(`/query-shushu?limit=${limit}`); console.log('✅ 术数书内容:', JSON.stringify(result, null, 2)); return result; } catch (error) { console.log('❌ 查询术数书失败:', error.message); return null; } } // 搜索术数书内容 async function searchShushuBook(keyword, limit = 5) { console.log(`\n🔍 搜索术数书内容: "${keyword}"...`); try { const result = await apiRequest(`/search-shushu?q=${encodeURIComponent(keyword)}&limit=${limit}`); console.log('✅ 搜索结果:', JSON.stringify(result, null, 2)); return result; } catch (error) { console.log('❌ 搜索失败:', error.message); return null; } } // 获取术数书统计信息 async function getShushuStats() { console.log('\n📊 获取术数书统计信息...'); try { const result = await apiRequest('/shushu-stats'); console.log('✅ 统计信息:', JSON.stringify(result, null, 2)); return result; } catch (error) { console.log('❌ 获取统计信息失败:', error.message); return null; } } // 主函数 async function main() { console.log('🚀 术数书查询脚本'); console.log('=================='); // 首先测试连接 console.log('\n🔗 测试 Hyperdrive 连接...'); try { const connectionTest = await apiRequest('/test-connection'); console.log('✅ 连接成功:', connectionTest.message); } catch (error) { console.log('❌ 连接失败:', error.message); return; } // 查询表结构 await queryTables(); // 获取统计信息 await getShushuStats(); // 查询术数书内容 await queryShushuBook(5); // 搜索示例 await searchShushuBook('易经'); await searchShushuBook('八卦'); await searchShushuBook('太公'); } // 如果是 Node.js 环境,导入 fetch if (typeof window === 'undefined') { // Node.js 环境 const { default: fetch } = require('node-fetch'); global.fetch = fetch; main().catch(console.error); } else { // 浏览器环境 console.log('在浏览器控制台中运行: main()'); } // 导出函数供其他模块使用 if (typeof module !== 'undefined' && module.exports) { module.exports = { queryTables, queryShushuBook, searchShushuBook, getShushuStats, main }; }