From fc9bc39afac2d18f12461e7c481cbcb066a7cc20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=88=B1=E5=96=9D=E6=B0=B4=E7=9A=84=E6=9C=A8=E5=AD=90?= Date: Fri, 13 Mar 2026 16:54:09 +0800 Subject: [PATCH] fix --- app/p/[slug]/page.tsx | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/app/p/[slug]/page.tsx b/app/p/[slug]/page.tsx index e99d15a..c87dcad 100644 --- a/app/p/[slug]/page.tsx +++ b/app/p/[slug]/page.tsx @@ -2,6 +2,7 @@ import { getDb } from "@/lib/mongo"; import { MarkdownViewer } from "@/components/MarkdownViewer"; import { notFound } from "next/navigation"; import { normalizeImageUrl } from "@/lib/normalize"; +import { Post } from "@/types/post"; export const dynamic = "force-dynamic"; @@ -9,15 +10,23 @@ type Props = { params: { slug: string }; }; -async function fetchPost(slug: string) { +async function fetchPost(slug: string): Promise { const db = await getDb(); const doc = await db.collection("posts").findOne({ slug }); if (!doc) return null; // fire-and-forget view increment db.collection("posts").updateOne({ slug }, { $inc: { views: 1 } }).catch(() => {}); return { - ...doc, - _id: doc._id?.toString() + _id: doc._id?.toString(), + title: doc.title ?? "", + slug: doc.slug ?? slug, + markdown: doc.markdown ?? "", + cover: doc.cover, + tags: doc.tags ?? [], + author: doc.author ?? "admin", + createdAt: doc.createdAt ?? new Date().toISOString(), + updatedAt: doc.updatedAt ?? doc.createdAt ?? new Date().toISOString(), + views: doc.views ?? 0 }; }