如何在 SvelteKit 中使用 POST 端点获取结构化对象?

亨利

当我使用 Sveltekit 的 POST 端点时,我得到一个“平面”对象作为输出。我怎样才能得到一个“结构化”对象呢?

让我们假设以下代码:

index.svelte

<div class="container">
  <form method="post">
    <label for="firstname">Firstname</label>
    <input type="text" name="firstname" />

    <label for="lastname">Lastname</label>
    <input type="text" name="lastname" />

    <label for="dog">Dog 1</label>
    <input type="text" name="dog" />

    <label for="dog">Dog 2</label>
    <input type="text" name="dog" />

    <!-- ... -->

    <button>Save</button>
  </form>
</div>

index.js

export async function post({request}){
    const data = Object.fromEntries(await request.formData());
    console.log(data);

    return{}
}

输出(我称之为“平面”对象)

{ firstname: 'foo', lastname: 'bar', dog: 'teckel', dog: 'labrador' }

而不是那个输出,我应该如何继续在我的 index.js 中获得以下输出

预期输出:

{
  firstname: 'foo',
  lastname: 'bar',
  dogs: [ { dog: 'teckel' }, { dog: 'labrador' } ]
}
乙肝

有些库可以或多或少地自动执行这样的转换。一些在字段名称中使用约定将数据解析为数组和嵌套结构,另一些还使用模式进行类型转换或验证。例如,要实现这样的对象数组,可以这样设置名称:

<label for="dog">Dog 1</label>
<input type="text" name="dogs[][dog]" />

<label for="dog">Dog 2</label>
<input type="text" name="dogs[][dog]" />

表示该[]字段是数组的一部分,[dog]表示dog在元素上设置了一个调用的属性(.dog这也是合理的)。

Object.fromEntries因此,您必须自己解析数据或找到为您执行此操作的库,而不是调用。(请注意,StackOverflow不是库推荐的地方。)


就个人而言,我会避免同步表单发布并异步发送 JSON,这样您就可以以固定结构发送并接收确切的结构。当然,这需要自己绑定/读取表单值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在谷歌表格中使用结构化查询来获取 json 格式的数据?

如何在pyspark结构化流中使用maxOffsetsPerTrigger?

如何在magento中使用fishpig获取wordpress post标签

如何在jQuery中使用.post获取跨度值?

如何在PHP中使用$ _POST获取选择元素值

如何在PHP中使用POST获取变量

如何在非页面的 SvelteKit 组件中获取数据

如何在 SvelteKit 中获取加载功能的用户代理

SvelteKit:如何使用基于路由的命名槽

如何使用旧版本的 sveltekit?

如何使用 sveltekit 提供纯 json 文件?

如何在Android中使用HTTP Post?

如何在ApiController中使用POST

如何在HttpUrlConnection中使用POST方法

如何在 $.ajax POST 中使用 RedirectToAction?

如何在 $_POST 中使用多个参数

如何将道具传递给 SvelteKit 端点

如何在以arg形式传递给某些函数的数组中使用结构化绑定?

如何在Spark结构化流中使用流数据帧更新静态数据帧

如何在Kafka Direct Stream中使用Spark结构化流?

如何在Azure Functions中使用结构化日志记录

如何在Kafka connect 0.10和Spark结构化流中使用from_json?

如何在Angular 6中使用ng-for处理JSON非结构化数据

如何在结构化查询中使用scikit学习模型?

如何在Angular2中使用POST发送更多对象?

如何在Alamofire中使用POST命令发送此JSON对象?

使用 SvelteKit 回退图像

如何在PHP中使用相同的循环获取$ _POST和$ _FILES请求

如何在Swift 3中使用HTTP Post方法获取JSON数据?