const Parse = require('parse/node'); const fs = require('fs'); // 初始化Parse SDK Parse.initialize('ecommerce-ai-app', 'unused', 'master-key-change-this-in-production'); Parse.serverURL = 'http://localhost:1337/parse'; // 测试结果收集 const testResults = { parseServer: { status: 'failed', responseTime: 0, error: null, details: {} } }; // 颜色输出函数 function colorLog(message, color) { const colors = { green: '\x1b[32m', red: '\x1b[31m', yellow: '\x1b[33m', blue: '\x1b[34m', reset: '\x1b[0m' }; console.log(`${colors[color]}${message}${colors.reset}`); } // 测试Parse Server连接 async function testParseServerConnection() { colorLog('===== 测试Parse Server连接 =====', 'blue'); console.log('服务器地址:', Parse.serverURL); const startTime = Date.now(); try { // 尝试获取服务器健康状态 const healthResponse = await fetch(`${Parse.serverURL}/health`); const healthStatus = healthResponse.ok ? '成功' : '失败'; const healthData = healthResponse.ok ? await healthResponse.json() : null; // 测试基本Parse操作 const TestObject = Parse.Object.extend('TestObject'); const testObject = new TestObject(); testObject.set('message', 'Hello from connection test'); const savedObject = await testObject.save(); // 查询测试对象 const query = new Parse.Query(TestObject); const results = await query.find(); // 删除测试对象 await savedObject.destroy(); const responseTime = Date.now() - startTime; testResults.parseServer.status = 'success'; testResults.parseServer.responseTime = responseTime; testResults.parseServer.details = { healthStatus, healthData, objectSaved: true, objectsQueried: results.length, objectDeleted: true }; colorLog('✅ Parse Server连接成功!', 'green'); console.log(` 响应时间: ${responseTime}ms`); console.log(` 健康检查: ${healthStatus}`); if (healthData) { console.log(` 健康数据:`, JSON.stringify(healthData, null, 2)); } console.log(` 对象操作: 保存/查询/删除 成功`); } catch (error) { const responseTime = Date.now() - startTime; testResults.parseServer.responseTime = responseTime; testResults.parseServer.error = error.message; colorLog('❌ Parse Server连接失败!', 'red'); console.log(` 响应时间: ${responseTime}ms`); console.log(` 错误信息: ${error.message}`); if (error.stack) { console.log(` 错误堆栈: ${error.stack}`); } } } // 生成测试报告 function generateReport() { const report = { testTime: new Date().toISOString(), results: testResults }; // 保存到文件 fs.writeFileSync('parse-server-test-report.json', JSON.stringify(report, null, 2)); // 打印报告 colorLog('\n===== Parse Server连接测试报告 =====', 'blue'); console.log('测试时间:', report.testTime); console.log('========================'); console.log('\n【Parse Server】'); if (testResults.parseServer.status === 'success') { colorLog(`状态: ✅ 成功`, 'green'); console.log(`响应时间: ${testResults.parseServer.responseTime}ms`); console.log(`健康检查: ${testResults.parseServer.details.healthStatus}`); console.log(`对象操作: 保存/查询/删除 成功`); } else { colorLog(`状态: ❌ 失败`, 'red'); console.log(`响应时间: ${testResults.parseServer.responseTime}ms`); console.log(`错误信息: ${testResults.parseServer.error}`); } console.log('========================'); colorLog('\n详细报告已保存到: parse-server-test-report.json', 'blue'); } // 执行测试 async function runTests() { colorLog('开始执行Parse Server连接测试...\n', 'blue'); await testParseServerConnection(); generateReport(); } // 运行测试 runTests().catch(console.error);