23 lines
958 B
TypeScript
23 lines
958 B
TypeScript
import type { NextApiRequest, NextApiResponse } from "next";
|
|
import { readDocument } from "@/lib/docs";
|
|
|
|
// The proxy protects Markdown just like the rendered document and search index.
|
|
export default function handler(request: NextApiRequest, response: NextApiResponse) {
|
|
response.setHeader("Cache-Control", "private, no-store");
|
|
if (request.method !== "GET") {
|
|
response.setHeader("Allow", "GET");
|
|
return response.status(405).end();
|
|
}
|
|
const slug = request.query.slug;
|
|
if (typeof slug !== "string") return response.status(400).json({ error: "缺少文档地址" });
|
|
try {
|
|
const doc = readDocument(slug);
|
|
if (!doc) return response.status(404).end();
|
|
response.setHeader("Content-Type", "text/plain; charset=utf-8");
|
|
response.setHeader("X-Content-Type-Options", "nosniff");
|
|
return response.status(200).send(doc.content);
|
|
} catch {
|
|
return response.status(503).json({ error: "文档数据库暂时不可用" });
|
|
}
|
|
}
|