28 lines
1.0 KiB
TypeScript
28 lines
1.0 KiB
TypeScript
/**
|
|
* 游戏列表 API - 从 MongoDB 读取,供前端调用
|
|
* 示例:后端通过 getCollection 访问 wanzhi_esports 库
|
|
*/
|
|
|
|
import { NextResponse } from "next/server"
|
|
import { getCollection } from "@/lib/db/mongo"
|
|
|
|
export async function GET() {
|
|
try {
|
|
const coll = await getCollection<{ name: string; shortName: string; category: string; status: string; sortOrder: number }>("games")
|
|
const list = await coll.find({ status: "active" }).sort({ sortOrder: 1 }).limit(50).toArray()
|
|
const data = list.map((doc) => ({
|
|
id: (doc as { _id?: unknown })._id?.toString(),
|
|
name: doc.name,
|
|
shortName: doc.shortName,
|
|
category: doc.category,
|
|
status: doc.status,
|
|
sortOrder: doc.sortOrder,
|
|
}))
|
|
return NextResponse.json({ success: true, data })
|
|
} catch (e) {
|
|
const err = e instanceof Error ? e : new Error(String(e))
|
|
console.error("GET /api/games error:", err.message)
|
|
return NextResponse.json({ success: false, message: "数据库未连接或未初始化" }, { status: 500 })
|
|
}
|
|
}
|