diff --git a/src/pages/blogs.astro b/src/pages/blogs.astro index 27eb232..ab557c4 100644 --- a/src/pages/blogs.astro +++ b/src/pages/blogs.astro @@ -1,6 +1,6 @@ --- import FullLayoutV1 from '../layout/FullLayoutV1.astro' -import { listBlogs } from '../lib/apis/legacy/blog' +import { listBlogs, type ListBlogItemType } from '../lib/apis/legacy/blog' import BlogCard from '../components/BlogCard.astro' import BlogHeaderImage from '../assets/blogs-header.webp' import { Image } from 'astro:assets' @@ -10,7 +10,13 @@ export const prerender = false const _page = parseInt(Astro.url.searchParams.get('page') || '1') const page = isNaN(_page) ? 1 : Math.max(1, _page) -const blogs = await listBlogs({ page, limit: 100 }) +let blogs: ListBlogItemType[] = [] + +try { + blogs = await listBlogs({ page, limit: 100 }) +} catch { + return Astro.redirect('/500') +} --- diff --git a/src/pages/blogs/[blog_id].astro b/src/pages/blogs/[blog_id].astro index 9669b74..6fe11df 100644 --- a/src/pages/blogs/[blog_id].astro +++ b/src/pages/blogs/[blog_id].astro @@ -17,7 +17,14 @@ if (isNaN(blog_id_num) || blog_id_num < 0) { return Astro.redirect('/404') } -const blogData = await getBlog(blog_id_num) +let blogData = null + +try { + blogData = await getBlog(blog_id_num) +} catch (e) { + return Astro.redirect('/500') +} + if (blogData === null) { return Astro.redirect('/404') }