更新数据模式,增加代码数组最大值至65535;修改主页标题为“ESP32 微弱压力数据采集系统”;调整记录页面的EMA参数默认值和启用状态;更新ESLint配置以关闭no-explicit-any规则提示

This commit is contained in:
feie9456 2025-11-15 20:08:52 +08:00
parent ed6b3393d7
commit d1647d3114
4 changed files with 13 additions and 5 deletions

View File

@ -4,7 +4,7 @@ import { prisma } from '@/src/lib/prisma'
import { applyFit, basicStats, genId, getSampleRateHz } from '@/src/lib/utils'
const DataSchema = z.object({
code: z.array(z.number().int()).min(1, 'code array empty').max(4096, 'too many points'),
code: z.array(z.number().int()).min(1, 'code array empty').max(65535, 'too many points'),
fit: z.object({ a: z.number(), b: z.number() }).optional(),
recStartMs: z.number().int().nonnegative().optional(),
recEndMs: z.number().int().nonnegative().optional(),
@ -16,10 +16,12 @@ export async function POST(req: NextRequest) {
const parsed = DataSchema.safeParse(json)
if (!parsed.success) {
const first = parsed.error.errors[0]
console.log(first, json);
return Response.json({ error: first?.message ?? 'invalid body' }, { status: 400 })
}
const { code, fit, recStartMs, recEndMs } = parsed.data
if (code.length > 16384) {
if (code.length > 65535) {
return Response.json({ error: 'payload too large' }, { status: 413 })
}

View File

@ -109,7 +109,7 @@ export default function Home() {
<div className="min-h-screen bg-zinc-50 text-zinc-900 dark:bg-black dark:text-zinc-100">
<div className="mx-auto max-w-6xl p-4 sm:p-6">
<header className="mb-4 flex flex-col gap-3 sm:mb-6 sm:flex-row sm:items-end sm:justify-between">
<h1 className="text-2xl font-semibold">ESP32 </h1>
<h1 className="text-2xl font-semibold">ESP32 </h1>
<div className="flex flex-wrap items-end gap-2">
<div className="flex items-center gap-2">
<label className="text-sm"></label>

View File

@ -42,8 +42,8 @@ export default function Page({ params }: { params: Promise<{ id: string }> }) {
const [loading, setLoading] = useState(false)
const [error, setError] = useState<string | null>(null)
const [rec, setRec] = useState<Detail | null>(null)
const [emaAlpha, setEmaAlpha] = useState(0.2)
const [enableEma, setEnableEma] = useState(false)
const [emaAlpha, setEmaAlpha] = useState(0.01)
const [enableEma, setEnableEma] = useState(true)
useEffect(() => {
const controller = new AbortController()

View File

@ -13,6 +13,12 @@ const eslintConfig = defineConfig([
"build/**",
"next-env.d.ts",
]),
// 自定义规则覆盖:关闭 @typescript-eslint/no-explicit-any 提示
{
rules: {
"@typescript-eslint/no-explicit-any": "off",
},
},
]);
export default eslintConfig;