import { consola } from "consola"; import type { IImageGenerateData, IImageGenerateRequest } from "#shared/types/openai"; import { isUnauthorizedError } from "~~/server/utils"; export default defineEventHandler(async (event) => { const requestBody = await readBody | null>( event ); // 只接受 JSON 对象,避免数组、字符串等无效 body 被用于生成请求。 if ( requestBody !== null && (typeof requestBody !== "object" || Array.isArray(requestBody)) ) { return createErrorResponse(400, "请求体必须是 JSON 对象"); } const prompt = requestBody?.prompt?.trim(); if (!prompt) { return createErrorResponse(400, "请输入图片描述"); } try { const apiKey = await getAiArtStudioTokenKey(event); const result = await askImg({ apiKey, prompt }); consola.info("图片生成成功", { prompt, imageUrl: result.imageUrl }); return createSuccessResponse(result, "图片生成成功"); } catch (error) { if (isUnauthorizedError(error)) { clearNewApiAuthCookies(event); return createErrorResponse(401, "未登录"); } return createUpstreamErrorResponse(error, "图片生成失败"); } });