npm包Apollo-Absinthe-GraphQL-Upload使用教程

阅读时长 9 分钟读完

什么是Apollo-Absinthe-GraphQL-Upload

Apollo-Absinthe-GraphQL-Upload是一款针对GraphQL文件上传的Node.js模块。它是一个基于apollo-upload-server和absinthe-graphql的封装,可实现GraphQL上传和下载的功能,为GraphQL提供了强大的扩展性和灵活性。

安装

使用常规的npm安装方法:

使用

在使用Apollo-Absinthe-GraphQL-Upload时,需要首先将上传文件的GraphQL类型定义添加到您的架构中。 这就是我们首先通过将以下代码添加到我们的架构中来完成的:

-- -------------------- ---- -------
------ ----------

---- ----- -
  - --- ---- --- ------ -----
-

---- -------- -
  ------------ ------ ------------- -----
  -------------- ------- ---------------- --------
-

接下来,我们需要在服务器端配置处理上传操作,例如:

-- -------------------- ---- -------
------ ------- ---- ----------
------ - ------------ - ---- ------------------------
------ - -------------------- - ---- ------------------------
------ - --------------------------- - ---- ---------------------------------

----- --- - ----------

----- -------- - -
------ ----------

---- ----- -
  - --- ---- --- ------ -----
-

---- -------- -
  ------------ ------ ------------- -----
  -------------- ------- ---------------- --------
-
--

----- --------- - -
  --------- -
    ------------- ----- --- - ---- -- -- -
      ----- - ----------------- --------- --------- -------- - - ----- -----
      -- --------- -----
    --
    --------------- ----- --- - ----- -- -- -
      ----- ------ - ---

      --- ----- ------ - ----------------- --------- --------- -------- - -- ------ -
        -- --------- -----
      -

      ------ -------
    --
  --
--

----- ------ - ---------------------- --------- --------- ---

----- ------ - --- --------------
  -------- --------------------------------
  -------
---

----- ---------------

------------------------ --- ---

---------------- -- -- ------------------- -----------

我们可以在这里看到,要使用一个新的参数类型FileUpload,需要将一个名为ApolloAbsintheGraphQLUpload的插件添加到Apollo服务器中。

最后,我们可以像下面这样在客户端使用它:

示例代码

以下是一个完整的使用示例代码:

服务端代码写在server.js里:

-- -------------------- ---- -------
------ ------- ---- ----------
------ - ------------ - ---- ------------------------
------ - -------------------- - ---- ------------------------
------ - --------------------------- - ---- ---------------------------------

----- --- - ----------

----- -------- - -
------ ----------

---- -------------- -
  --------- -------
  --------- -------
  --------- -------
-

---- ----- -
  ----- -------
-

---- -------- -
  ------ ------ ------------- ---------------
-
--

----- --------- - -
  ------ -
    ----- -- -- ------ -------
  --
  --------- -
    ------- ----- --- - ---- -- -- -
      ----- - ----------------- --------- --------- -------- - - ----- -----
      ----- ------ - -------------------
      ------------- --------- --------- -------- ---
      -- -- --------- ---- ------
      ------ - --------- --------- -------- --
    --
  --
--

----- ------ - ---------------------- --------- --------- ---

----- ------ - --- --------------
  -------- --------------------------------
  -------
---

----- ---------------

------------------------ --- ---

---------------- -- -- ------------------- -----------

然后运行node server.js即可启动服务。

客户端代码写在client.js里:

-- -------------------- ---- -------
------ ------ - -------- - ---- --------
------ - ------------- -------------- --------------- ---- ----------- - ---- -----------------
------ - ---------------- - ---- -----------------------

----- ------ - --- --------------
  ------ --- ----------------
  ----- ------------------ ---- -------------------------------- ---
---

----- --------------- - ----
  -------- ------------- ------------ -
    ------------ ------ -
      --------
      --------
      --------
    -
  -
--

-------- ----- -
  ----- ------ -------- - ---------------
  ----- -------- - -------- ----- ----- -- - -----------------------------

  ----- ------------ - --- -- -
    ---------------------------
  --

  ----- ------------ - --- -- -
    -------------------
    -------- ---------- - ---- - ---
  --

  -- --------- ------ ------------------
  -- ------- ------ -------- -------

  ------ -
    ----- ------------------------
      ------ ----------- ----------------------- --
      ------- -----------------------------
      ----- -- -
        ---
          --------- ----------------------
          --- --
          --------- ----------------------
          --- --
          --------- ----------------------
        ----
      --
    -------
  --
-

----------------
  --------------- ----------------
    ---- --
  ------------------
  -------------------------------
--

在指定的端口启动客户端即可。

意义

使用Apollo-Absinthe-GraphQL-Upload,我们可以快速地上传和下载文件,而不必担心GraphQL的限制。 它提供了更强大的扩展性和灵活性,使我们可以更方便地创建我们自己的函数和模块,甚至可以定制自己的上传和下载逻辑。

总结

以上就是Apollo-Absinthe-GraphQL-Upload的详细使用教程。 它可以帮助我们轻松上传和下载文件,为我们的开发提供了强大的支持和灵活性。 希望本文对你有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600562cb81e8991b448e0146

纠错
反馈