首页 > 解决方案 > 如何在 Oak/deno 中访问表单主体

问题描述

我正在使用橡木/deno。我有一个从提供的 ejs 文件提交的表单。如何访问表单正文?当我将它记录到控制台时,它会打印:{type: "form", value: URLSearchParamsImpl {} }

后处理程序如下所示:

router.post("/add", async (ctx: RouterContext) => {
  const body = (await ctx.request.body())
  console.log(body)
  ctx.response.redirect("/");
});

标签: denooak

解决方案


如果您发送的x-www-form-urlencoded只是URLSearchParams使用body.value.

body.value.get('yourFieldName')

如果body.type === "form-data"您可以使用.value.read()并且您将获得这些multipart/form-data字段

router.post("/add", async (ctx: RouterContext) => {
  const body = await ctx.request.body({ type: 'form-data '});
  const formData = await body.value.read();
  console.log(formData.fields);
  ctx.response.redirect("/");
});

推荐阅读