性能优化
This commit is contained in:
@@ -18,13 +18,28 @@ export async function GET(request: NextRequest) {
|
||||
// 默认行为:返回所有页面(向后兼容)
|
||||
const usePagination = limit > 0 && limit <= 1000 && page > 0;
|
||||
|
||||
const baseSelect = {
|
||||
id: true,
|
||||
title: true,
|
||||
content: !lightweight,
|
||||
tags: true,
|
||||
icon: true,
|
||||
type: true,
|
||||
parentId: true,
|
||||
createdAt: true,
|
||||
updatedAt: true,
|
||||
order: true,
|
||||
isLocked: true,
|
||||
} as const;
|
||||
|
||||
if (!usePagination) {
|
||||
const pages = await prisma.page.findMany({
|
||||
select: baseSelect,
|
||||
orderBy: [{ order: 'asc' }, { createdAt: 'desc' }],
|
||||
});
|
||||
const parsedPages = pages.map((p) => ({
|
||||
...p,
|
||||
content: lightweight ? '' : p.content,
|
||||
content: lightweight ? '' : (p.content || ''),
|
||||
tags: safeParseTags(p.tags),
|
||||
}));
|
||||
return NextResponse.json(parsedPages);
|
||||
@@ -34,6 +49,7 @@ export async function GET(request: NextRequest) {
|
||||
const skip = (page - 1) * limit;
|
||||
const [pages, total] = await Promise.all([
|
||||
prisma.page.findMany({
|
||||
select: baseSelect,
|
||||
skip,
|
||||
take: limit,
|
||||
orderBy: [{ order: 'asc' }, { createdAt: 'desc' }],
|
||||
@@ -133,4 +149,3 @@ export async function POST(request: Request) {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user