首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在oak/deno中访问窗体主体

如何在oak/deno中访问窗体主体
EN

Stack Overflow用户
提问于 2020-06-14 01:56:39
回答 2查看 1.7K关注 0票数 2

我用的是oak/deno。我有一个表格,是从一个ejs文件提交的。如何访问表单体?当我将其登录到控制台时,它会打印:{type: "form", value: URLSearchParamsImpl {} }

post处理程序如下所示:

代码语言:javascript
复制
router.post("/add", async (ctx: RouterContext) => {
  const body = (await ctx.request.body())
  console.log(body)
  ctx.response.redirect("/");
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-14 02:01:24

如果要发送x-www-form-urlencoded,只需使用body.value中提供的URLSearchParams实例即可。

代码语言:javascript
复制
body.value.get('yourFieldName')

如果为body.type === "form-data",则可以使用.value.read(),您将获得multipart/form-data字段

代码语言:javascript
复制
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("/");
});
票数 3
EN

Stack Overflow用户

发布于 2020-12-16 03:27:48

类似下面的代码将返回值

它看起来像是通过.get(<key>)访问body.value,或者可以使用.entries()Object.fromEntries()进行迭代

代码语言:javascript
复制
async register(context: RouterContext) {
  const body = context.request.body({ type: 'form' })
  const value = await body.value

  console.log(value.get('email'))

  for (const [key, val] of value.entries()) {
    console.log(key, val)
  }

  const args = Object.fromEntries(value)
  console.log(args)

  context.response.body = 'test'
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62363699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档