npm包graphql-compose-connection-mongo使用教程

阅读时长 5 分钟读完

GraphQL是一种会改变前端开发方式的查询语言。许多公司都在使用GraphQL将其前端架构逐渐转移到更加高效、可维护的基于查询的架构。GraphQL允许开发人员以更加直观、易于理解的方式,轻松地从服务端获取数据。

GraphQL-Compose是一个免费的开源库,为GraphQL的模型构造提供了封装和工具。而 graphql-compose-connection-mongo则是GraphQL-Compose里与MongoDB数据库连接的插件。

表格分页的问题

对于哪些处理大量数据请求的应用程序,支持表格分页变得尤为重要。大多数应用程序的表格可能必须支持数千乃至数十万行的数据,同时支持分页查看。

故而我们引入一个示例集合数据,其中每个文档都包含了用户的姓名和年龄。

graphql-compose-connection-mongo

graphql-compose-connection-mongo是一个npm包,它可以帮助你轻松在GraphQL中进行MongoDB的分页。接下来我们会给出一些示例代码演示如何使用它。

安装:

使用:

首先,我们用composeWithMongoose将mongoose集成到graphql-compose中。

然后,我们会发现这个包导出了两个函数:prepareCursorQuery和prepareConnection。这两个函数可以帮助我们轻松进行分页操作。

最后,我们使用connectionResolver函数将包中的分页算法与我们的MongoDB集合连接起来。该函数将根据给定的命名实体和目标查询自动设置我们的解析器。

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

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

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

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

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

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

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

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

我们除了定义一个新函数对传入的查询进行分页以外,把分页声明式地添加到我们的graphql-compose中并且包装UserModel查询我们的分页解析器。我们传递page和perPage参数来告诉分页算法如何分页。我们将用户集合连接到查询,并使用rmTC中的“pagination”解析器来处理分页请求。

然后,我们仅需要将查询传递给我们的分页解析器,并将数据返回给用户。

如此简单的就可以使用graphql-compose-connection-mongo进行MongoDB的分页查询啦!

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

纠错
反馈