// ============================================= // 测试脚本:验证身份证图片数据流 // 用途:测试前端到后端的数据传递 // ============================================= // 模拟前端数据 const mockFrontendData = { username: '测试司机', mobile: '13800138000', carNumber: '京A12345', driverLicense: 'https://example.com/driver1.jpg,https://example.com/driver2.jpg', drivingLicense: 'https://example.com/license1.jpg', carImg: 'https://example.com/car1.jpg,https://example.com/car2.jpg', recordCode: 'https://example.com/code1.jpg', idCard: 'https://example.com/id_front.jpg,https://example.com/id_back.jpg', // 身份证前后照片 remark: '测试备注' }; console.log('=== 前端发送的数据 ==='); console.log(JSON.stringify(mockFrontendData, null, 2)); // 模拟后端接收的数据 const mockBackendReceived = { username: mockFrontendData.username, mobile: mockFrontendData.mobile, carNumber: mockFrontendData.carNumber, driverLicense: mockFrontendData.driverLicense, drivingLicense: mockFrontendData.drivingLicense, carImg: mockFrontendData.carImg, recordCode: mockFrontendData.recordCode, idCard: mockFrontendData.idCard, // 这个字段应该存储到数据库的 id_card 字段 remark: mockFrontendData.remark }; console.log('\n=== 后端接收的数据 ==='); console.log(JSON.stringify(mockBackendReceived, null, 2)); // 模拟数据库存储 const mockDatabaseRecord = { id: 1, member_id: 1, username: mockBackendReceived.username, car_number: mockBackendReceived.carNumber, driver_license: mockBackendReceived.driverLicense, driving_license: mockBackendReceived.drivingLicense, car_img: mockBackendReceived.carImg, record_code: mockBackendReceived.recordCode, id_card: mockBackendReceived.idCard, // 存储到 id_card 字段 remark: mockBackendReceived.remark, create_time: new Date().toISOString() }; console.log('\n=== 数据库存储记录 ==='); console.log(JSON.stringify(mockDatabaseRecord, null, 2)); // 验证身份证字段 console.log('\n=== 身份证字段验证 ==='); console.log('id_card 字段值:', mockDatabaseRecord.id_card); console.log('身份证照片数量:', mockDatabaseRecord.id_card.split(',').length); console.log('身份证照片列表:', mockDatabaseRecord.id_card.split(',')); // 模拟前端读取数据 const mockFrontendRead = { id: mockDatabaseRecord.id, username: mockDatabaseRecord.username, carNumber: mockDatabaseRecord.car_number, driver_license: mockDatabaseRecord.driver_license, driving_license: mockDatabaseRecord.driving_license, car_img: mockDatabaseRecord.car_img, record_code: mockDatabaseRecord.record_code, id_card: mockDatabaseRecord.id_card, // 从数据库读取 remark: mockDatabaseRecord.remark }; console.log('\n=== 前端读取的数据 ==='); console.log(JSON.stringify(mockFrontendRead, null, 2)); // 模拟前端图片处理 const processImageUrls = (imageUrlString) => { if (!imageUrlString || imageUrlString.trim() === '') { return []; } return imageUrlString.split(',').map(url => url.trim()).filter(url => url !== ''); }; const idCardImages = processImageUrls(mockFrontendRead.id_card); console.log('\n=== 前端图片处理结果 ==='); console.log('身份证图片数组:', idCardImages); console.log('身份证图片数量:', idCardImages.length); // 验证数据完整性 console.log('\n=== 数据完整性验证 ==='); const isValid = mockDatabaseRecord.id_card && mockDatabaseRecord.id_card.includes(',') && mockDatabaseRecord.id_card.split(',').length === 2; console.log('数据完整性检查:', isValid ? '✅ 通过' : '❌ 失败'); if (isValid) { console.log('✅ 身份证前后照片地址已正确存储到 id_card 字段'); console.log('✅ 使用英文逗号分隔多个URL'); console.log('✅ 前端可以正确读取和显示'); } else { console.log('❌ 数据存储或处理存在问题'); }