[後端][API][Next.js][MySQL][ORM] 2.建立API

文、意如

專案中建立檔案

/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 - 關於我 - 意如