npm包graphile-build使用教程

1. 简介

Graphile-build是一个基于Graphql的Javascript库,主要用于构建高效、灵活的GraphQL服务。它已经深受前端开发者和GraphQL爱好者的喜爱,同时也得到了Github等多个社区的积极推荐。Graphile-build提供了一系列的插件来帮助开发者将数据库中的数据转化成GraphQL中的数据类型。这一系列插件提供了GraphQL Schema 自动构建、简单的字段重复以及定制处理所有远程请求等等功能,让开发者无需复杂地手动编写GraphQL Schema。本文将向大家介绍graphile-build的基本概念,使用方法以及一些示例代码,希望能够帮助读者更容易地理解和使用graphile-build。

2. 安装

Graphile-build依赖于Node.js和PostgreSQL,因此在使用之前需要确保Node.js与PostgreSQL环境已经安装好了。接下来,通过npm安装graphile-build:

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

当然,如果您想使用一些其他的插件,您也可以在安装时指定您需要的插件名称:

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

3. 基本概念

Schema

Schema即GraphQL对象类型的集合,其中包含了所有GraphQL对象类型、集合类型以及相应的字段、查询与变更。它可以被描述为一个数据源的公开API,用于描述数据的结构、类型以及字段之间的关系。

Plugin

Plugin是为Schema添加某些功能的小型软件包,它们可以自定义我们的Schema,以及某些特定功能的插件。插件实际上就是对GraphQL schema的"补丁",它们会改变Schema中的字段、类型、扩展器和指令等等,从而实现特定的目的。

builder

Builder是用于描述Schema和Plugin的一种模式。它被认为是一种更加高效、灵活的开发方式,它不仅可以在运行时快速构建Schema,并且可以轻松地扩展添加Plugin,同时也更加容易维护。

4. 使用方法

构建基本Schema

在使用graphile-build之前,我们需要先通过GraphQL objectType方法构建Schema中的字段、类型等。在这里我们举一个简单的例子,我们将构建一个包含name与age两个字段的GraphQL Schema。代码如下:

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

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

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

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

在上面的代码中,我们定义了一个personType,并在最终的Schema中添加一个person Query,最终输出结果如下:

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

增加Plugin

graphile-build拥有许多有用的Plugin,您可以方便地选择您需要的Plugin来增强您的Schema。这里我们选用graphile-build-pg插件作为例子,让我们来看一下如何将这个插件添加到我们的使用中,以便在Schema中使用PostgreSQL数据库。

首先,我们需要在安装graphile-build-pg的同时,将pg包同时进行安装:

--- - --

然后,我们可以将graphile-build-pg添加到我们的Schema中:

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

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

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

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

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

在上面的例子中,我们首先引入了graphile-build-pg插件,然后在buildSchema过程中将它加入到plugins中。接下来,我们在Query中添加了一个persons选项,它会从我们的PostgreSQL数据库中查询出数据,最后通过GraphQL返回。最后,我们将数据库连接信息利用context参数传入到Schema中,在graphql方法中调用即可。

5. 总结

本文向大家介绍了npm包graphile-build的使用方法,包括构建Schema、增加Plugin等操作,并且提供了详细的代码示例。Graphile-build的出现加速了GraphQL的普及,进一步提高了工程师的开发效率。如果您已经习惯了使用GraphQL,并且在开发中碰到了较为复杂的业务场景,相信graphile-build能够为您的开发工作提供更多的便利。

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


猜你喜欢

  • 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 年前
  • npm 包 magnet-uri 使用教程

    在前端开发中,如果要处理磁力链接(magnet link),通常会使用 npm 包 magnet-uri。这个包可以将磁力链接转换成对象形式,或者将对象形式转换成磁力链接。

    5 年前
  • npm 包 string2compact 使用教程

    在前端开发中,我们经常需要对字符串进行一些处理,例如去除空格、换行符等。针对这一需求,我们可以使用 npm 包 string2compact。 安装 string2compact 使用 npm 进行全...

    5 年前
  • npm 包 compact2string 使用教程

    什么是 compact2string? compact2string 是一个用于将 JavaScript 对象转换为紧凑字符串格式的 npm 包。这个包可以用于在前端或者服务器端将对象进行存储、传输或...

    5 年前
  • npm 包 bittorrent-peerid 使用教程

    简介 bittorrent-peerid 是一个可以生成 BitTorrent Peer ID 的 npm 包,用于在使用 BitTorrent 协议时唯一识别种子,同时保护了自身的匿名性和隐私。

    5 年前
  • npm 包 rollup-plugin-delete 使用教程

    前言 在打包和发布前端项目时,我们经常会需要删除一些无用的文件,比如说构建产生的临时文件和目录、过期的缓存文件等等。手动删除这些文件是一种繁琐且容易出错的操作,因此我们需要一个自动化的解决方案。

    5 年前
  • npm 包 @liangchun/rollup-plugin-auto-external 使用教程

    在前端开发中,很多时候我们需要使用各种各样的第三方库和插件来完成我们的开发工作。在当今的开源生态中,有数万的 npm 包可供选择。然而,在使用这些包时,我们需要解决许多问题,例如版本冲突、依赖管理等。

    5 年前

相关推荐

    暂无文章