實作所有測驗結果與資料庫整合
This commit is contained in:
@@ -1,14 +1,12 @@
|
||||
const http = require('http')
|
||||
|
||||
const testExportSimple = async () => {
|
||||
console.log('🔍 測試簡化匯出功能')
|
||||
console.log('🔍 簡單測試匯出功能')
|
||||
console.log('=' .repeat(30))
|
||||
|
||||
try {
|
||||
// 先測試獲取題目資料
|
||||
console.log('\n📊 測試獲取邏輯題目資料...')
|
||||
const logicResponse = await new Promise((resolve, reject) => {
|
||||
const req = http.get('http://localhost:3000/api/questions/logic', (res) => {
|
||||
const response = await new Promise((resolve, reject) => {
|
||||
const req = http.get('http://localhost:3000/api/admin/test-results/export', (res) => {
|
||||
let data = ''
|
||||
res.on('data', chunk => data += chunk)
|
||||
res.on('end', () => resolve({
|
||||
@@ -19,50 +17,40 @@ const testExportSimple = async () => {
|
||||
req.on('error', reject)
|
||||
})
|
||||
|
||||
console.log(`狀態碼: ${logicResponse.status}`)
|
||||
|
||||
if (logicResponse.status === 200) {
|
||||
const logicData = JSON.parse(logicResponse.data)
|
||||
console.log(`成功獲取 ${logicData.data?.length || 0} 道邏輯題目`)
|
||||
|
||||
if (logicData.data && logicData.data.length > 0) {
|
||||
const firstQuestion = logicData.data[0]
|
||||
console.log(`第一題: ${firstQuestion.question?.substring(0, 50)}...`)
|
||||
console.log(`選項A: ${firstQuestion.option_a}`)
|
||||
console.log(`正確答案: ${firstQuestion.correct_answer}`)
|
||||
if (response.status === 200) {
|
||||
const data = JSON.parse(response.data)
|
||||
if (data.success) {
|
||||
console.log('✅ 匯出成功')
|
||||
|
||||
// 解碼並檢查 CSV 內容
|
||||
const binaryString = Buffer.from(data.data, 'base64').toString('binary')
|
||||
const csvContent = Buffer.from(binaryString, 'binary').toString('utf-8')
|
||||
|
||||
// 只顯示前幾行
|
||||
const lines = csvContent.split('\n')
|
||||
console.log('\n📋 CSV 前 10 行:')
|
||||
lines.slice(0, 10).forEach((line, index) => {
|
||||
console.log(`${index + 1}: ${line}`)
|
||||
})
|
||||
|
||||
// 檢查是否有「創意」和「平衡」字樣
|
||||
const hasCreative = csvContent.includes('創意')
|
||||
const hasBalance = csvContent.includes('平衡')
|
||||
console.log(`\n🔍 檢查結果:`)
|
||||
console.log(` 包含「創意」: ${hasCreative ? '是' : '否'}`)
|
||||
console.log(` 包含「平衡」: ${hasBalance ? '是' : '否'}`)
|
||||
|
||||
if (hasCreative && hasBalance) {
|
||||
console.log('✅ 修復成功!')
|
||||
} else {
|
||||
console.log('❌ 仍有問題')
|
||||
}
|
||||
|
||||
} else {
|
||||
console.log('❌ 匯出失敗:', data.message)
|
||||
}
|
||||
} else {
|
||||
console.log('❌ 獲取邏輯題目失敗')
|
||||
}
|
||||
|
||||
// 測試創意題目
|
||||
console.log('\n📊 測試獲取創意題目資料...')
|
||||
const creativeResponse = await new Promise((resolve, reject) => {
|
||||
const req = http.get('http://localhost:3000/api/questions/creative', (res) => {
|
||||
let data = ''
|
||||
res.on('data', chunk => data += chunk)
|
||||
res.on('end', () => resolve({
|
||||
status: res.statusCode,
|
||||
data: data
|
||||
}))
|
||||
})
|
||||
req.on('error', reject)
|
||||
})
|
||||
|
||||
console.log(`狀態碼: ${creativeResponse.status}`)
|
||||
|
||||
if (creativeResponse.status === 200) {
|
||||
const creativeData = JSON.parse(creativeResponse.data)
|
||||
console.log(`成功獲取 ${creativeData.data?.length || 0} 道創意題目`)
|
||||
|
||||
if (creativeData.data && creativeData.data.length > 0) {
|
||||
const firstQuestion = creativeData.data[0]
|
||||
console.log(`第一題: ${firstQuestion.statement?.substring(0, 50)}...`)
|
||||
console.log(`類別: ${firstQuestion.category}`)
|
||||
console.log(`反向計分: ${firstQuestion.is_reverse}`)
|
||||
}
|
||||
} else {
|
||||
console.log('❌ 獲取創意題目失敗')
|
||||
console.log('❌ 匯出失敗,狀態碼:', response.status)
|
||||
}
|
||||
|
||||
} catch (error) {
|
||||
@@ -70,4 +58,4 @@ const testExportSimple = async () => {
|
||||
}
|
||||
}
|
||||
|
||||
testExportSimple()
|
||||
testExportSimple()
|
Reference in New Issue
Block a user