deno - 如何在 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("/");
});
解决方案
如果您发送的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("/");
});
推荐阅读
- javascript - 使用 javascript 中的 RegExp 对象将字符串替换为值
- python-3.x - Python中的颜色检测和比较
- java - Java中的功能等价
- python-3.x - 如何检查小数点后的数字?
- java - Gradle 解析策略 cacheDynamicVersionsFor 不起作用
- flutter - 飞镖列表中三个点(...)的用途是什么?
- mysql - 从注册页面自动登录应该被删除
- node.js - 带有 docker 的 Nodejs 端口无法访问
- json - 如何读取嵌套在多个级别中的 json
- python - Django 抽象模型字段依赖于子属性