目标是让一个 Node.js / hapi API 服务器用两个东西响应浏览器的 AJAX 请求:
- 媒体文件(例如图片)
- 带有文件元数据的 JSON 对象
这两个东西之所以是分开的,仅因为二进制数据无法轻松地存储在 JSON 中。否则,这将是一个单一的资源。尽管如此,最好将它们发送到单个响应中。
我们使用 multipart/form-data
在单个请求中上传它们。在这种情况下,浏览器提供了内置机制来序列化请求体,大多数服务器端框架也知道如何解析它。但是,如何在相反的方向上对响应进行相同的操作呢?也就是说,服务器应该如何序列化主体以将其传输给客户端?
据我所知,multipart/mixed
可能是一个有用的内容类型。但是很少有人谈论这个问题。大多数人似乎都倾向于提供两个单独的 GET
路由,每个路由返回一个部分。我不喜欢这样做,因为它会引起竞态条件等问题。我错过了什么吗?
还请参阅我在 hapijs/discuss#563 中的问题。
multipart/form-data
提供,并使用Response.formData()
。 - guest271314response.formData()
。这将在这里非常有用。现在我必须想出如何在服务器上构建响应。我基本上需要pez的反向。 - Seth Holladay