GraphQL 是一种由 Facebook 开发的查询语言和运行时环境,用于 API 的查询和数据操纵。GraphQL 的优点在于它可以让客户端请求精确地指定需要的数据,从而避免获取不必要的数据,提高性能。Hapi 是一个 Node.js 的 Web 应用程序框架,它提供了一种简单的方法来构建可扩展的 Web 应用程序。本文将介绍如何在 Hapi 框架中使用 graphql-hapi 插件进行 GraphQL 操作。
安装 graphql-hapi 插件
要在 Hapi 框架中使用 graphql-hapi 插件,首先需要安装它。可以使用 npm 包管理器来安装它:
npm install graphql graphql-hapi --save
配置服务器
在 Hapi 框架中,可以使用 server.register() 方法来注册插件。在注册 graphql-hapi 插件之前,需要配置服务器。以下是一个示例服务器配置:
-- -------------------- ---- ------- ----- ---- - ---------------- ----- ------ - ------------- ----- ----- ----- ----------- --- ----- ---- - ----- -- -- - ----- --------------- ------------------- ------- --- --------------------- -- -------------------------------- ----- -- - ----------------- ---------------- --- -------展开代码
注册 graphql-hapi 插件
要使用 graphql-hapi 插件,需要将它注册到 Hapi 服务器中。以下是一个示例代码:
-- -------------------- ---- ------- ----- ---- - ---------------- ----- ----------- - ------------------------ ----- - -------------------- - - ------------------------- ----- -------- - - ---- ----- - ------ ------ - -- ----- --------- - - ------ - ------ -- -- ------ ------- - -- ----- ------ - ---------------------- --------- --------- --- ----- ------ - ------------- ----- ----- ----- ----------- --- ----- ---- - ----- -- -- - ----- ----------------- ------- ------------ -------- - ----- ----------- --------------- - ------ -- ------ - ----- ---- - - --- ----- --------------- ------------------- ------- --- --------------------- -- -------------------------------- ----- -- - ----------------- ---------------- --- -------展开代码
在上面的代码中,我们使用 makeExecutableSchema() 方法创建了一个 GraphQL schema,然后将它传递给 graphql-hapi 插件的 options 中。我们还设置了路由选项,使得跨域请求得到支持。
现在,我们可以在浏览器中访问 http://localhost:3000/graphql
,应该可以看到 GraphQL Playground,它是一个交互式的 GraphQL IDE。
使用 GraphQL
现在我们已经设置好了 GraphQL,可以使用它来进行查询和变更操作。以下是一个示例查询:
query { hello }
这个查询将返回:
{ "data": { "hello": "Hello world!" } }
这是因为我们在 schema 中定义了一个名为 hello 的查询,它返回字符串 "Hello world!"。
结论
在本文中,我们学习了如何在 Hapi 框架中使用 graphql-hapi 插件进行 GraphQL 操作。我们首先安装了插件,然后配置了服务器,并注册了插件。最后,我们使用 GraphQL 进行了一个简单的查询。希望这篇文章能够帮助你开始在 Hapi 框架中使用 GraphQL。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67466143f84d1ff10358bd7b