npm 包 @graphql-tools/load-files 使用教程

阅读时长 5 分钟读完

前言

GraphQL 是一种用于 API 的查询语言和运行时环境,可以有效地帮助前端项目开发过程中的数据获取及管理。而 @graphql-tools/load-files 这个 npm 包则可以方便地将我们的 GraphQL schema 以及 resolvers 加载到我们的项目中,完成自动化的绑定和关联,大大提高代码的可维护性和可扩展性。

安装

我们可以使用 npm 命令来安装 @graphql-tools/load-files 包,同时还需要安装 graphql,如下所示:

用法

示例项目结构

在我们开始使用 @graphql-tools/load-files 之前,先来看一下有哪些文件需要准备。本文中我们将以一个基于 Node.js 的 GraphQL 服务器项目为例进行演示,项目结构如下:

schema/typeDefs.graphql 文件中定义了我们项目中使用的 GraphQL schema,包括 Query 以及 Mutation。

resolvers/index.js 文件会作为我们的 resolver 的入口文件,并且通过 @graphql-tools/load-files 自动加载目录下所有的 resolver。

而在 resolvers 目录下,我们会应用不同的文件进行拆分不同的 resolver。

加载 TypeDefs

我们可以使用 loadTypedefsSync 方法快速加载 typeDefs 文件,如下所示:

在这个例子中,我们加载了 schema 目录下所有的 .graphql 文件,同时利用 mergeTypeDefs 方法将它们合并成一个完整的 schema。

自动加载 Resolvers

我们可以通过 loadFilesSync 方法来自动加载 resolvers 目录下的所有 resolver 文件,如下所示:

在这个例子中,我们的入口文件通过 loadFilesSync 方法将 resolver 目录下的所有 .js 文件加载到 resolversArray 数组中,而后用 mergeResolvers 方法将它们合并成一个完整的 resolver 对象。

当我们开始使用 GraphQL schema 时,我们只需要在相应的位置导入合并后的 typeDefs 和 resolvers 即可:

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

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

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

小结

通过学习 @graphql-tools/load-files 的使用教程,我们可以发现自动加载 typeDefs 和 resolvers 文件对于我们的 GraphQL 服务器项目来说非常实用。它使得我们的代码结构更加清晰可维护,同时降低了开发成本,迅速提高了我们的开发效率。希望本篇文章能给大家带来一些指导意义,帮助大家更好地使用该 npm 包。

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

纠错
反馈