npm 包 @types/express-graphql 使用教程

简介

@types/express-graphql 是一个 TypeScript 类型定义文件,用于增强 express-graphql 的类型提示和代码补全,方便前端开发人员在 GraphQL API 开发中使用 TypeScript 更加便捷。

安装

使用 npm 进行安装:

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

使用

基本使用

安装完 @types/express-graphql 后,在 TypeScript 中导入 express-graphql 时,将自动获得类型提示和代码补全功能。

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

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

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

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

上述代码中,我们导入了 express-graphql,并使用 graphqlHTTP 对象在 /graphql 路径下开启了一个 GraphQL API,同时开启了 GraphiQL 调试工具。

在 MyGraphQLSchema 中定义好了 GraphQL Schema 后,即可在调试工具中进行 GraphQL API 的测试。

更多选项

除了上面的基本用法外,@types/express-graphql 还提供了更多选项来增强 GraphQL API 的功能和类型提示能力。

自定义上下文

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

在上述代码中,我们通过 getMyContext 方法获取到了一个自定义的上下文对象,然后将 context 选项传递给了 graphqlHTTP。这样,在 GraphQL Resolver 中使用 context 对象时,可以获得更清晰的类型提示。

自定义错误处理

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

在上述代码中,我们通过 customFormatErrorFn 方法自定义了错误处理方式,将错误信息输出到控制台,并将错误信息包装成了 GraphQL 错误格式。

使用 Dataloader 进行数据加载

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

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

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

在上述代码中,我们使用了 Dataloader 包来进行数据加载,然后将 Dataloader 对象作为 GraphQL API 的 context 选项传递进去,以供 Resolver 使用。

使用订阅功能

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

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

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

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

在上述代码中,我们使用了 subscriptions-transport-ws 包来开启 GraphQL API 的订阅功能,然后在 SubscriptionServer 的 create 方法中传入 GraphQL Schema 和执行函数即可。

总结

@types/express-graphql 提供了丰富的选项,来增强 TypeScript 对 GraphQL API 开发的支持,方便前端开发人员进行 API 开发和测试。当然,前提是你需要一定的 TypeScript 和 GraphQL 基础知识,才能更好地掌握这个包的用法。

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


猜你喜欢

  • npm 包 apollo-datasource-rest 使用教程

    npm 包 apollo-datasource-rest 使用教程 在前端开发中,获取数据并将它们呈现给用户是一个非常常见的任务。但是,这个过程往往需要处理大量的复杂代码和许多的请求。

    5 年前
  • npm 包 apollo-cache-control 使用教程

    什么是 apollo-cache-control apollo-cache-control 是一个用于控制缓存的 npm 包,它可以通过设置 HTTP header 实现对缓存行为的控制。

    5 年前
  • npm 包 react-error-boundary 使用教程

    在前端开发中,我们经常会遇到意外错误导致应用崩溃的情况。这时候,如果没有合适的错误处理机制,用户体验将会非常差。为了避免这种情况的发生,我们可以使用 npm 包 react-error-boundar...

    5 年前
  • npm 包 v8-compile-cache 使用教程

    介绍 v8-compile-cache 是一个使用了 V8 编译缓存的简单模块。这个模块是被设计用来加快 Node.js 应用程序的启动时间。V8 编译缓存可以使已经编译过的脚本在下次重启后不需要重新...

    5 年前
  • npm 包 graphql-yoga 使用教程

    简介 GraphQL 是一种用于 API 构建的查询语言,它使得客户端可以精确地获取自己所需的数据。与 RESTful API 不同的是,GraphQL 中的数据查询是通过一个单一的入口点进行的,这样...

    5 年前
  • npm 包 graphql-middleware 使用教程

    graphql-middleware 是一个 Node.js 的中间件集合,用于在 GraphQL 查询进出执行之前或之后可以对其进行中间件功能的扩展。本文将介绍如何使用 npm 包 graphql-...

    5 年前
  • npm 包 eslint-config-jason 使用教程

    前言 在前端开发中,代码质量的高低对于整个项目的稳定运行和开发效率都有着很大的影响。eslint 是一个非常常用的代码质量检查工具,它可以用来发现代码中的规范错误、潜在的错误、重复代码等等。

    5 年前
  • NPM 包 babel-preset-jason 使用教程

    在前端开发中,Babel 是一个非常常用的工具,它可以将 ES6 及以上版本的代码转换成 ES5 的代码。对于 Babel 而言,它包含了很多 preset,其中一个比较实用的 preset 是 ba...

    5 年前
  • npm 包 @4c/rollout 使用教程

    前言 在前端开发中,使用优秀的 npm 包能够提高我们的开发效率,减少重复劳动和避免出现低级错误。而 @4c/rollout 就是一款非常优秀的 npm 包,可以帮助我们实现灰度发布和 A/B 测试等...

    5 年前
  • npm 包 property-expr 使用教程

    在前端开发中,我们经常需要对对象进行操作。而对对象的操作中,访问和修改对象的属性是非常常见的需求。对于操作对象属性,我们可以使用 JavaScript 原生的语法来实现。

    5 年前
  • npm 包 randomkey 使用教程

    在前端开发中,我们经常需要生成随机的字符串、数字或者其他数据。npm 包 randomkey 是一个非常好用的工具,可以帮助我们快速生成各种随机数据。本文将介绍如何使用 randomkey 包,并提供...

    5 年前
  • npm 包 netroute 使用教程

    在前端开发中,常常需要进行网络请求。而在进行网络请求时,我们往往需要合理地使用路由。当我们需要获取一段信息时,很可能需要浏览器请求多个目标地址,这就需要使用合适的路由来管理这些地址。

    5 年前
  • npm 包 nat-pmp 使用教程

    本篇文章将为大家介绍如何使用 npm 包 nat-pmp 来管理和控制 NAT 网络上的端口映射规则。本文所述的内容对前端开发人员具有重要的指导和学习意义,因为在实际的项目开发过程中,很多时候需要使用...

    5 年前
  • npm 包 pripub 使用教程

    在前端领域,我们经常会需要分享一些代码或是文件给他人。但是有些时候,我们并不想将这些内容公开,而只想分享给特定的人,这个时候怎么办呢?这时我们可以使用 pripub 这个 npm 包来加密我们的内容。

    5 年前
  • npm 包 base32 使用教程

    随着互联网的发展,信息的传输和存储已经成为一种非常普遍的需求。而我们常见的文本、图片、音频等数据,都需要经过一定的编码和解码才能进行传输、存储和处理。其中,base32 编码就是一种常用的编码方式之一...

    5 年前
  • npm 包 torrent-util 使用教程

    随着互联网的发展,数字媒体越来越流行,尤其是种子下载。如果你是一名前端开发人员,想在你的应用或网站中集成 P2P 下载功能,那么 torrent-util 是一个值得掌握的 npm 包。

    5 年前
  • npm 包 nyaatorrents 使用教程

    简介 nyaatorrents 是一个基于 Node.js 的 npm 包,用于获取 Nyaa.si 网站的种子信息。在前端开发中,我们可能会需要获取这些种子信息,以便于在应用中显示动漫、漫画等资源。

    5 年前
  • npm 包 utp 使用教程

    概述 utp是一个基于UDP封装的轻量级传输协议,它可以提供比TCP更快的速度和更低的延迟。 npm包utp是一个JavaScript实现的utp协议库,它可以在Node.js中使用。

    5 年前
  • npm 包 fifo 使用教程

    什么是 fifo? fifo 是一种先进先出(First In First Out)的数据结构。在计算机中,它被广泛用于处理请求队列,缓冲区,以及数据交换等场景中。

    5 年前
  • 前端工具之 `npm` 包 `streamspeed` 使用教程

    前端工具之 npm 包 streamspeed 使用教程 前端开发每天都有各种各样的任务需要处理,大多数情况下我们可能需要处理大量的文件以及数据,这个时候就需要用到一些操作流的工具来辅助我们。

    5 年前

相关推荐

    暂无文章