From ea30448df71592147852d96df82db799b632901c Mon Sep 17 00:00:00 2001 From: 100gle Date: Mon, 25 Dec 2023 21:12:37 +0800 Subject: [PATCH] i18n(zh-cn): Update `recipes/build-forms-api.mdx` --- .../docs/zh-cn/recipes/build-forms-api.mdx | 485 ++++++++++-------- 1 file changed, 267 insertions(+), 218 deletions(-) diff --git a/src/content/docs/zh-cn/recipes/build-forms-api.mdx b/src/content/docs/zh-cn/recipes/build-forms-api.mdx index d2961a4449480..0c72d3a8ee863 100644 --- a/src/content/docs/zh-cn/recipes/build-forms-api.mdx +++ b/src/content/docs/zh-cn/recipes/build-forms-api.mdx @@ -17,7 +17,38 @@ import UIFrameworkTabs from "~/components/tabs/UIFrameworkTabs.astro"; ## 操作步骤 -1. 使用你的 UI 框架创建一个表单组件。每个输入字段都应该有一个描述该输入值的 `name` 属性。 +1. 在 `/api/feedback` 上创建一个 `POST` API 端点,用于接收表单数据。然后使用 `request.formData()` 处理表单数据。但在你使用表单值之前,请确保对其进行必要的校验。 + + 在这个示例中会向客户端发送一个包含响应消息的 JSON 对象。 + + ```ts title="src/pages/api/feedback.ts" "request.formData()" "post" + import type { APIRoute } from "astro"; + + export const POST: APIRoute = async ({ request }) => { + const data = await request.formData(); + const name = data.get("name"); + const email = data.get("email"); + const message = data.get("message"); + // Validate the data - you'll probably want to do more than this + if (!name || !email || !message) { + return new Response( + JSON.stringify({ + message: "Missing required fields", + }), + { status: 400 } + ); + } + // Do something with the data, then return a success response + return new Response( + JSON.stringify({ + message: "Success!" + }), + { status: 200 } + ); + }; + ``` + +2. 使用你的 UI 框架创建一个表单组件。每个输入字段都应该有一个描述该输入值的 `name` 属性。 请确保表单中包含一个 `