我用的是oak/deno。我有一个表格,是从一个ejs文件提交的。如何访问表单体?当我将其登录到控制台时,它会打印:{type: "form", value: URLSearchParamsImpl {} }
post处理程序如下所示:
router.post("/add", async (ctx: RouterContext) => {
const body = (await ctx.request.body())
console.log(body)
ctx.response.redirect("/");
});发布于 2020-06-14 02:01:24
如果要发送x-www-form-urlencoded,只需使用body.value中提供的URLSearchParams实例即可。
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("/");
});发布于 2020-12-16 03:27:48
类似下面的代码将返回值
它看起来像是通过.get(<key>)访问body.value,或者可以使用.entries()或Object.fromEntries()进行迭代
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'
}https://stackoverflow.com/questions/62363699
复制相似问题