npm 包 graphql-express-persisted-query 使用教程

GraphQL 是一种新型的 API 架构,它提供了一种更高效、更强大的方式来获取数据。然而,使用 GraphQL 和 Express 并不是那么容易。随着应用程序变得越来越复杂,通常需要将查询缓存起来,以提高查询效率。这时一个方便的解决方案便是使用 GraphQL Express Persisted Query。

什么是 GraphQL Express Persisted Query

GraphQL Express Persisted Query 是一个 npm 包,它为 Express 服务器添加了一个新的中间件。使用此中间件可以使 Express 服务器接受来自客户端的参数,以便将此查询转换为一个哈希值,并将其与查询文本一起保存在缓存中。这样,每次客户端请求相同的查询时,都会使用缓存的查询,从而提高性能。

如何使用 GraphQL Express Persisted Query

首先,安装 GraphQL Express Persisted Query:

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

然后,将它作为 Express 服务器的中间件使用:

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

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

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

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

现在,您可以向您的客户端发送一个参数extensions.persistedQuery,以从缓存中获取查询。如果客户端未发送查询,则此查询将执行后发送到服务器端进行哈希和缓存。

例如,以下代码片段在向服务器请求时将查询转换为哈希值并将其保存在缓存中:

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

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

注意,extensions.persistedQuery.sha256Hash 实际上是该查询文本的哈希值,在实际使用中需要先将查询文本哈希为一个字符串,然后将其传递到客户端。

如果您无法使用客户端参数,请参考此示例,该示例在服务器端检查查询并返回哈希值:

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

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

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

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

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

现在,每次客户端发送相同的查询时,都将从缓存中获取查询,以提高性能。

总结

GraphQL Express Persisted Query 是在 Express 服务器上使用 GraphQL 的最佳方式之一。它能够提高性能,避免在多次查询时重复执行查询。如果你正在使用 GraphQL 和 Express,那么这是一个值得尝试的 npm 包。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/600560aa81e8991b448dee9a


猜你喜欢

  • npm 包 bw-ng2-select2 使用教程

    简介 bw-ng2-select2 是一个基于 select2 插件的 Angular 2+ 下拉选择框组件。它具有简单易用、高度可定制、支持异步数据加载等特点,可以有效地提升前端开发的效率和用户体验...

    3 年前
  • npm 包 neo-html2json 使用教程

    本文将介绍一个前端开发中非常有用的 npm 包—— neo-html2json,它可以将 HTML 代码转化为 JSON 格式,方便前端开发者进行各种数据处理和操作。

    3 年前
  • npm 包 convertto 使用教程

    什么是 convertto? convertto 是一个用于数据类型转换的 npm 包,支持将各种数据类型互相转换,例如将数字转换为字符串,将数组转换为对象等等。使用 convertto 可以方便地解...

    3 年前
  • npm 包 pull-selector-react 使用教程

    在前端开发中,选择器组件是必不可少的一部分。而 pull-selector-react 是一个功能强大的选择器组件,可以帮助我们实现多种选择方式。本篇文章将为大家介绍 pull-selector-re...

    3 年前
  • npm包clinamen-bt使用教程

    简介 clinamen-bt是一个基于bootstrap的超轻量级前端ui组件库,提供了多个常用组件以及样式。本教程将会介绍如何通过npm安装clinamen-bt,以及如何使用组件和样式表。

    3 年前
  • npm 包 Delirium 使用教程

    什么是 Delirium Delirium 是一个专为前端开发人员设计的 npm 包,它提供了丰富的工具和函数,用于快速开发高质量的前端项目。 Delirium 支持许多常见的任务,例如:文件复制、文...

    3 年前
  • npm 包 mk-app-forgot-password 使用教程

    引言 在现代Web应用程序中,大多数网站都提供忘记密码功能。但是,实现这项功能可能会很困难。为了帮助开发人员更加容易地实现这个功能,我们介绍了npm包mk-app-forgot-password。

    3 年前
  • npm 包 mk-app-modify-password 使用教程

    简介 mk-app-modify-password 是一个基于 React 的前端密码修改组件库,提供了修改密码的 UI 页面和逻辑处理。 通过简单的 API 调用,开发者可以轻松地将这个组件库集成进...

    3 年前
  • npm 包 ng2-form-control-errors 使用教程

    1. 前言 ng2-form-control-errors 是一个 Angular2 项目中常用的 npm 包,它能够帮助前端开发者在表单验证中更加便捷地处理错误信息。

    3 年前
  • npm 包 mk-app-my-setting 使用教程

    在前端开发中,我们经常需要用到各种各样的 npm 包来帮助我们更加快速地完成开发。在本文中,我们主要介绍一款名为 mk-app-my-setting 的 npm 包,它可以帮助我们快速实现一个个人设置...

    3 年前
  • npm 包 a-recorder 使用教程

    前言 在前端开发中,有时需要使用音频录制功能。a-recorder 是一个轻量、易用的 Web 音频录制组件,它基于 MediaStream Recording API 和录制器 worker 将录音...

    3 年前
  • npm 包 webpack-electroshot-plugin 使用教程

    简介 webpack-electroshot-plugin 是一款使用 Electron 和 Headless Chrome 执行 JavaScript 测试的 Webpack 插件。

    3 年前
  • npm 包 enome 使用教程

    npm 包 enome 是一个前端工具,它可以帮助开发者生成漂亮的代码注释,提高团队协作效率和代码可读性。它是专门为 JavaScript,TypeScript 和 Flow 语言编写而设计的,而且支...

    3 年前
  • npm 包 bkbot 使用教程

    什么是 bkbot? bkbot 是一个基于 Node.js 的聊天机器人开发工具,支持多种聊天平台(包括微信、QQ、Telegram 等),其主要特点是简单易用、可扩展性高。

    3 年前
  • npm 包 groucho 使用教程

    什么是 groucho? groucho 是一个用于进行 JavaScript 函数柯里化的 npm 包。柯里化是一种将函数转换为一系列接收一个参数的函数的技术。它帮助我们将函数的参数更清晰地分离,并...

    3 年前
  • npm 包List-Peer-Deps使用教程

    对于前端开发人员来说,使用Node.js和npm是很常见的。npm是Node.js包管理工具,但是有时候依赖于别的模块,一个模块就会有多个模块依赖,而模块依赖又有自己的依赖,这样就难以管理了。

    3 年前
  • npm 包 preprocess-cli-tool 使用教程

    当我们在开发前端应用时,我们经常需要对源码进行预处理。比如,我们需要根据不同的环境设置不同的 API 地址、调试开关和 Sentry 钩子等等。手动进行这些预处理可能会非常繁琐,更不用说每次都需要手工...

    3 年前
  • npm 包 ecarx-business-card 使用教程

    在前端开发中,使用第三方工具可以大大提高开发效率,而 npm 包是目前最常用的前端工具之一。ecarx-business-card 包是一款可以用于创建名片的 npm 包,它可以快速地生成一张炫酷的名...

    3 年前
  • npm 包 porto-grid-system 使用教程

    介绍 porto-grid-system 是一个基于 Bootstrap 的栅格系统,使用非常方便,支持定制化。 安装 安装 porto-grid-system 很简单,只需要使用 npm: --- ...

    3 年前
  • npm 包 @lukechavers/node-common 使用教程

    在现代前端项目的开发过程中,我们难免会遇到一些常用的功能需要实现,例如数据存储、加密解密、日志记录等。这些功能虽然并不困难,但需要我们写很多重复的代码,而且代码不太可复用。

    3 年前

相关推荐

    暂无文章