Files
blogflare/src/routes/series/+page.server.ts
T

33 lines
888 B
TypeScript

/* eslint-disable @typescript-eslint/no-explicit-any */
import { error } from '@sveltejs/kit';
import type { PageServerLoad } from './$types';
export const load: PageServerLoad = async ({ platform }) => {
const db = platform?.env?.DB;
if (!db) throw error(500, '数据库未连接');
try {
const { results } = await db
.prepare(
`SELECT s.id, s.name, s.slug, s.description, COUNT(p.id) AS post_count
FROM series s
LEFT JOIN posts p ON p.series_id = s.id
GROUP BY s.id, s.name, s.slug, s.description
ORDER BY s.name COLLATE NOCASE ASC`
)
.all();
return {
series: results as unknown as Array<{
id: number;
name: string;
slug: string;
description: string | null;
post_count: number;
}>
};
} catch (err: any) {
console.error('Error fetching public series list:', err);
throw error(500, '读取系列列表失败');
}
};