|
|
@ -36,6 +36,46 @@ async function testDbConnection() { |
|
|
testDbConnection(); |
|
|
testDbConnection(); |
|
|
|
|
|
|
|
|
const server = http.createServer(async (req, res) => { |
|
|
const server = http.createServer(async (req, res) => { |
|
|
|
|
|
// 健康检查端点
|
|
|
|
|
|
if (req.method === 'GET' && req.url === '/health') { |
|
|
|
|
|
try { |
|
|
|
|
|
// 测试数据库连接
|
|
|
|
|
|
const [rows] = await pool.execute('SELECT 1'); |
|
|
|
|
|
|
|
|
|
|
|
// 测试OSS连接
|
|
|
|
|
|
const ossStatus = await OssUploader.testConnection(); |
|
|
|
|
|
|
|
|
|
|
|
res.writeHead(200, { |
|
|
|
|
|
'Content-Type': 'application/json', |
|
|
|
|
|
'Access-Control-Allow-Origin': '*', |
|
|
|
|
|
'Access-Control-Allow-Methods': 'POST, GET, OPTIONS', |
|
|
|
|
|
'Access-Control-Allow-Headers': 'Content-Type' |
|
|
|
|
|
}); |
|
|
|
|
|
res.end(JSON.stringify({ |
|
|
|
|
|
success: true, |
|
|
|
|
|
status: 'healthy', |
|
|
|
|
|
database: 'connected', |
|
|
|
|
|
oss: ossStatus.success ? 'connected' : 'disconnected', |
|
|
|
|
|
timestamp: new Date().toISOString() |
|
|
|
|
|
})); |
|
|
|
|
|
} catch (error) { |
|
|
|
|
|
console.error('健康检查失败:', error.message); |
|
|
|
|
|
res.writeHead(503, { |
|
|
|
|
|
'Content-Type': 'application/json', |
|
|
|
|
|
'Access-Control-Allow-Origin': '*', |
|
|
|
|
|
'Access-Control-Allow-Methods': 'POST, GET, OPTIONS', |
|
|
|
|
|
'Access-Control-Allow-Headers': 'Content-Type' |
|
|
|
|
|
}); |
|
|
|
|
|
res.end(JSON.stringify({ |
|
|
|
|
|
success: false, |
|
|
|
|
|
status: 'unhealthy', |
|
|
|
|
|
error: error.message, |
|
|
|
|
|
timestamp: new Date().toISOString() |
|
|
|
|
|
})); |
|
|
|
|
|
} |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
// 处理GET请求,获取最新的合格证信息
|
|
|
// 处理GET请求,获取最新的合格证信息
|
|
|
if (req.method === 'GET' && req.url === '/getLatestCertificate') { |
|
|
if (req.method === 'GET' && req.url === '/getLatestCertificate') { |
|
|
try { |
|
|
try { |
|
|
@ -76,6 +116,7 @@ const server = http.createServer(async (req, res) => { |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
req.on('end', async () => { |
|
|
req.on('end', async () => { |
|
|
|
|
|
try { |
|
|
// 解析表单数据
|
|
|
// 解析表单数据
|
|
|
const formData = new URLSearchParams(body); |
|
|
const formData = new URLSearchParams(body); |
|
|
const certificate = { |
|
|
const certificate = { |
|
|
@ -89,6 +130,17 @@ const server = http.createServer(async (req, res) => { |
|
|
signature: formData.get('signature') |
|
|
signature: formData.get('signature') |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
console.log('接收到的表单数据:', { |
|
|
|
|
|
subjectName: certificate.subjectName, |
|
|
|
|
|
contact: certificate.contact, |
|
|
|
|
|
productName: certificate.productName, |
|
|
|
|
|
weight: certificate.weight, |
|
|
|
|
|
basis: certificate.basis, |
|
|
|
|
|
origin: certificate.origin, |
|
|
|
|
|
date: certificate.date, |
|
|
|
|
|
hasSignature: !!certificate.signature |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
// 处理手写签名,上传到OSS
|
|
|
// 处理手写签名,上传到OSS
|
|
|
let signatureUrl = null; |
|
|
let signatureUrl = null; |
|
|
if (certificate.signature) { |
|
|
if (certificate.signature) { |
|
|
@ -117,6 +169,8 @@ const server = http.createServer(async (req, res) => { |
|
|
[certificate.subjectName, certificate.contact, certificate.productName, certificate.weight, certificate.basis, certificate.origin, certificate.date, signatureUrl] |
|
|
[certificate.subjectName, certificate.contact, certificate.productName, certificate.weight, certificate.basis, certificate.origin, certificate.date, signatureUrl] |
|
|
); |
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
console.log('数据插入数据库成功'); |
|
|
|
|
|
|
|
|
// 返回成功响应,确保返回的signature是OSS URL
|
|
|
// 返回成功响应,确保返回的signature是OSS URL
|
|
|
const responseCertificate = { |
|
|
const responseCertificate = { |
|
|
...certificate, |
|
|
...certificate, |
|
|
@ -130,6 +184,16 @@ const server = http.createServer(async (req, res) => { |
|
|
'Access-Control-Allow-Headers': 'Content-Type' |
|
|
'Access-Control-Allow-Headers': 'Content-Type' |
|
|
}); |
|
|
}); |
|
|
res.end(JSON.stringify({ success: true, certificate: responseCertificate })); |
|
|
res.end(JSON.stringify({ success: true, certificate: responseCertificate })); |
|
|
|
|
|
} catch (error) { |
|
|
|
|
|
console.error('处理表单数据失败:', error.message); |
|
|
|
|
|
res.writeHead(500, { |
|
|
|
|
|
'Content-Type': 'application/json', |
|
|
|
|
|
'Access-Control-Allow-Origin': '*', |
|
|
|
|
|
'Access-Control-Allow-Methods': 'POST, GET, OPTIONS', |
|
|
|
|
|
'Access-Control-Allow-Headers': 'Content-Type' |
|
|
|
|
|
}); |
|
|
|
|
|
res.end(JSON.stringify({ success: false, error: '处理数据失败,请重试' })); |
|
|
|
|
|
} |
|
|
}); |
|
|
}); |
|
|
} catch (error) { |
|
|
} catch (error) { |
|
|
console.error('保存合格证信息失败:', error.message); |
|
|
console.error('保存合格证信息失败:', error.message); |
|
|
|