简介
gql-multipart 是一个 npm 包,可以用来在 JavaScript 中发送包含文件的 GraphQL 请求。它是基于 multipart/form-data 格式的 GraphQL 协议。在前端开发中,经常需要上传文件,而 GraphQL 默认不支持文件上传,需要使用 multipart/form-data 格式来上传文件。gql-multipart 可以方便地实现 GraphQL 文件上传,并且适用于大多数流行的 GraphQL 客户端。
安装
gql-multipart 可以使用 npm 安装,方式如下:
npm install gql-multipart --save
使用
- 引入 gql-multipart 包:
import { createFormDataObject } from "gql-multipart";
- 准备上传文件:
const file = new File([fileContent], "file-name", { type: "image/png" });
- 创建 FormData 对象:
-- -------------------- ---- ------- ----- -------- - ---------------------- -------------- --------------- ------ - -------- ------------------- -------- - ------------------ ------ - -- - - -- ---------- - ----- -- ---
- 发送 GraphQL 请求:
fetch("/graphql", { method: "POST", body: formData, }) .then((response) => response.json()) .then((data) => console.log(data));
示例代码
下面是一个完整的示例,用于上传一个文件,并在 GraphQL 后端存储文件:
-- -------------------- ---- ------- ------ - -------------------- - ---- ---------------- ----- ---------- - ------ -- - ----- -------- - ---------------------- -------------- ------------- ------ - -------- ----------------- -------- - ---------------- ------ - -- - - -- ---------- - ----- -- --- ----------------- - ------- ------- ----- --------- -- ---------------- -- ---------------- ------------ -- ------------------- -- ---------------------------------------------------------------- ------- -- - ----- ---- - ---------------------- ----------------- ---
该示例监听一个文件选择框,选择文件后调用 uploadFile 函数上传文件。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600671a430d0927023822465