import { NextApiHandler } from 'next';
import { getSortedSitesData } from './_lib/Site';

interface TotalResponse {
  totalPosts: number;
}

const total: NextApiHandler<TotalResponse> = async (_req, res) => {
  const allPostsData = await getSortedSitesData();
  const formattedPosts = allPostsData.map((post) => {
    return {
      ...post,
      date: post.date.toString(),
    };
  });
  const totalPosts = formattedPosts.length;
  console.log(`网站总数:${totalPosts}`);
  res.status(200).json({ totalPosts });
};

export default total;
export interface SiteData {
  id: string;
  title: string;
  date: Date;
  content: string;
}

const SITE_DATA: SiteData[] = [
  // TODO: Add your site data here
];

export async function getSortedSitesData(): Promise<SiteData[]> {
  // TODO: Implement your database query here
  return SITE_DATA;
}

代码位置:

  • pages/api/total.ts:包含 API 逻辑
  • pages/api/_lib/Site.ts:包含网站数据和获取数据的函数

API 调用:

你可以使用 fetch 或其他 HTTP 客户端库向 /api/total 发送一个 GET 请求。例如,在浏览器中,你可以使用以下代码:

fetch('/api/total').then(response => response.json()).then(data => {
  console.log(data.totalPosts);
});

注意:

  • Site.ts 中,你需要添加你的实际网站数据。
  • 你需要实现 getSortedSitesData 函数来从数据库中获取网站数据。
  • 确保你已经安装了必要的依赖项,例如 next
获取网站总数 API

原文地址: https://www.cveoy.top/t/topic/mY2J 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录