Files
blogflare/src/routes/admin/+page.server.ts
T
seahi 9f5c7c6e99
生产环境部署 - BlogFlare 至 Cloudflare Pages / 构建与自动化上线 (push) Failing after 6m4s
refactor: 统一后台 CRUD 路由的数据获取与操作方式
2026-08-07 12:53:44 +08:00

45 lines
1.3 KiB
TypeScript

/* eslint-disable @typescript-eslint/no-explicit-any */
import type { PageServerLoad } from './$types';
export const load: PageServerLoad = async ({ platform }) => {
const db = platform?.env?.DB;
let postCount = 0;
let totalWords = 0;
let tagCount = 0;
let categoryCount = 0;
let seriesCount = 0;
let pageCount = 0;
if (db) {
try {
const postResult = await db
.prepare('SELECT COUNT(*) as count, SUM(LENGTH(content)) as totalWords FROM posts')
.first();
const tagResult = await db.prepare('SELECT COUNT(*) as count FROM tags').first();
const categoryResult = await db.prepare('SELECT COUNT(*) as count FROM categories').first();
const seriesResult = await db.prepare('SELECT COUNT(*) as count FROM series').first();
const pageResult = await db.prepare('SELECT COUNT(*) as count FROM pages').first();
postCount = (postResult?.count as number) || 0;
totalWords = (postResult?.totalWords as number) || 0;
tagCount = (tagResult?.count as number) || 0;
categoryCount = (categoryResult?.count as number) || 0;
seriesCount = (seriesResult?.count as number) || 0;
pageCount = (pageResult?.count as number) || 0;
} catch (err: any) {
console.error('Error fetching admin dashboard stats:', err);
}
}
return {
postCount,
totalWords,
tagCount,
categoryCount,
seriesCount,
pageCount
};
};