import { NextRequest, NextResponse } from "next/server"; import { importWords, type Grade } from "@/lib/db"; import { parseWordExcel } from "@/lib/word-excel"; export const runtime = "nodejs"; export const dynamic = "force-dynamic"; export async function POST(request: NextRequest) { try { const formData = await request.formData(); const grade = String(formData.get("grade") ?? "") as Grade; const classTypeId = Number(formData.get("classTypeId")); const file = formData.get("file"); if (!(file instanceof File)) { return NextResponse.json({ message: "请选择要导入的 Excel 表格" }, { status: 400 }); } const buffer = Buffer.from(await file.arrayBuffer()); const rows = parseWordExcel(buffer); const result = importWords(grade, classTypeId, rows); return NextResponse.json({ result }); } catch (error) { return NextResponse.json({ message: getErrorMessage(error) }, { status: 400 }); } } function getErrorMessage(error: unknown) { const message = error instanceof Error ? error.message : "导入失败"; if (message.includes("FOREIGN KEY")) return "班级类型不存在"; if (message.includes("Unsupported file")) return "无法读取该表格,请使用 .xlsx 文件"; return message; }