GraphQL 是一种查询语言,它允许前端开发者从后端数据库中获取数据。在现代化的 Web 应用程序和 API 中,GraphQL 变得越来越流行。使用 GraphQL 可以轻松地查询和操作数据,而不必了解后端数据库的详细信息。本文将介绍如何使用 npm 包 graphql-db 来轻松地使用 GraphQL。
安装 graphql-db
在开始使用 graphql-db 之前,需要先安装它。可以通过 npm 包管理器来安装 graphql-db,如下所示:
npm install graphql-db
创建一个 GraphQL Schema
在 graphql-db 中,首先要创建一个 GraphQL Schema。Schema 是一种描述数据模型和查询语句的方式。在 graphql-db 中,使用 GraphQlSchema
类来创建一个 Schema,如下所示:
const { GraphQLSchema } = require('graphql'); const schema = new GraphQLSchema({ /* ... */ });
在 GraphQLSchema
构造函数中,可以传递一个对象参数,用于描述 Schema。这个对象中可以包含如下属性:
query
:描述查询类型,通常是组成模型的元素的 get 查询。mutation
:描述修改类型,通常是组成模型的元素的 set 查询。
例如,可以使用如下的代码来创建一个包含查询类型和变更类型的 Schema:
-- -------------------- ---- ------- ----- - -------------- ------------------ ------------- - - ------------------- ----- ------ - --- --------------- ------ --- ------------------- ----- -------- ------- - ------ - ----- -------------- -------- -- -- ------- ------- - - --- --------- --- ------------------- ----- ----------- ------- - - -- ---
这个 Schema 包含了一个查询类型和一个变更类型。查询类型中包含了一个名为 hello
的字段,它返回字符串“Hello, world!”。
创建一个 Resolver
在 graphql-db 中,Resolver 是一个查询的处理函数,它可以从数据库中获取并返回数据。Resolver 的返回值类型必须与 Schema 中定义的查询类型的字段类型相同。
可以使用 GraphQLResolver
类来创建一个 Resolver。
const { GraphQLResolver } = require('graphql-db'); const resolver = new GraphQLResolver({ /* ... */ });
在 GraphQLResolver
的构造函数中,可以传递一个对象参数用于描述 Resolver,如下所示:
const { GraphQLResolver } = require('graphql-db'); const resolver = new GraphQLResolver({ name: 'hello', resolve: () => 'Hello, world!' });
这个 Resolver 返回字符串“Hello, world!”。在 Schema 中定义的查询类型的字段名为 hello
,类型为 GraphQLString
。
将 Schema 和 Resolver 绑定
创建好 Schema 和 Resolver 之后,就需要将它们绑定在一起,以便它们可以一起使用。
在 graphql-db 中,可以使用 schema.addResolver(resolver)
方法将 Resolver 添加到 Schema 中。
const { GraphQLSchema } = require('graphql-db'); const schema = new GraphQLSchema({ /* ... */ }); schema.addResolver(resolver);
在这个示例代码中,将先前创建的 Resolver 添加到了先前创建的 Schema 中。
开始请求数据
可以使用 graphql
函数发起 GraphQL 请求并获取数据。
const { graphql } = require('graphql'); graphql(schema, query) .then((result) => console.log(JSON.stringify(result, null, 2)));
在这个示例代码中,使用了 graphql
函数进行了一个请求,并将结果打印到控制台。
示例代码
下面是一个完整的示例代码,用于说明如何使用 graphql-db 创建一个简单的 GraphQL 应用程序。
-- -------------------- ---- ------- ----- - ------- - - ------------------- ----- - -------------- ------------------ ------------- - - ------------------- ----- - --------------- - - ---------------------- ----- ------ - --- --------------- ------ --- ------------------- ----- -------- ------- - ------ - ----- -------------- -------- -- -- ------- ------- - - -- --- ----- -------- - --- ----------------- ----- -------- -------- -- -- ------- ------- --- ----------------------------- ----- ----- - - ----- - ----- - -- --------------- ------ -------------- -- ---------------------------------- ----- -----
总结
GraphQL 使用起来相对简单,但它需要使用一些工具和库,如 graphql-db。在本文中,我们介绍了如何使用 graphql-db 创建一个 GraphQL 应用程序。要使用 graphql-db,需要创建一个 Schema 和 Resolver 并将它们绑定在一起。在发起 GraphQL 请求时,使用 graphql
函数即可。本文的示例代码可以帮助你更深入地理解 GraphQL,了解如何使用 graphql-db 为你的应用程序提供服务。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055fc381e8991b448dd1ec