import { defineEventHandler } from 'h3'; import DB from 'better-sqlite3'; export default defineEventHandler(async (event) => { const db = new DB('./userData/db/posts.db'); // 获取所有标签 const tagsMap = new Map(); const tagsRows = db.prepare('SELECT id, tag1, tag2, tag3, tag4, tag5, tag6, tag7, tag8, tag9, tag10, tag11, tag12, tag13, tag14, tag15 FROM tags').all(); tagsRows.forEach((row: any) => { const tags = []; for (let i = 1; i <= 15; i++) { const tag = row[`tag${i}`]; if (tag) { tags.push(tag); } } tagsMap.set(row.id, tags); }); // 获取所有文章 const posts = db.prepare('SELECT id, title, summary, type, tag_id, url, date FROM posts').all(); // 替换tag_id为标签数组 posts.forEach((post: any) => { post.tags = tagsMap.get(post.tag_id) || []; }); db.close(); return { code: 200, data: posts.reverse() }; });