文、意如
專案中建立檔案
/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 - 關於我 - 意如