文、意如
專案中建立檔案
/src/pages/api/news/index.ts
 
// src/pages/api/news/index.ts
import { NextApiRequest, NextApiResponse } from "next";
import { prisma } from "@/lib/prisma"; // 確保你有這個路徑
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
  try {
    if (req.method !== "GET") {
      return res.status(405).json({ message: "Method Not Allowed" });
    }
    const newsList = await prisma.news.findMany({
      orderBy: { createdAt: "desc" },
    });
    res.status(200).json(newsList);
  } catch (error) {
    console.error("取得最新消息失敗:", error);
    res.status(500).json({ message: "伺服器錯誤" });
  }
}
2. 設定 prisma client(如果還沒建立)
你應該要有一個 lib/prisma.ts:
// src/lib/prisma.ts
import { PrismaClient } from "@prisma/client";
declare global {
  var prisma: PrismaClient | undefined;
}
export const prisma =
  global.prisma ||
  new PrismaClient({
    log: ["query"],
  });
if (process.env.NODE_ENV !== "production") global.prisma = prisma;
3.測試 API 是否成功
啟動你的 Next.js 專案後,打開瀏覽器進入:
http://localhost:3000/api/news

如果沒有看到JSON,可以重新生成 Prisma Client
npx prisma generate
 
Yiru@Studio - 關於我 - 意如