GraphQL 是一种用于 API 的查询语言,它让我们能够更加精确地请求我们需要的数据。它是由 Facebook 开发的,现在已经成为了前端开发的一项热门技术。在本教程中,我们将学习如何在 Express.js 中使用 GraphQL。
准备工作
在开始之前,我们需要安装一些依赖包。首先,我们需要安装 express
和 express-graphql
:
npm install express express-graphql
然后,我们需要安装 graphql
:
npm install graphql
创建 Express 应用程序
我们将从创建一个基本的 Express 应用程序开始。在你的项目目录下创建一个名为 app.js
的文件,并将以下代码复制到其中:
const express = require('express'); const app = express(); app.listen(3000, () => { console.log('Server started on port 3000'); });
这将创建一个 Express 应用程序,并在端口 3000 上启动它。现在我们可以通过访问 http://localhost:3000
来检查它是否正常工作。
创建 GraphQL Schema
在使用 GraphQL 之前,我们需要定义一个 schema。schema 定义了我们的数据模型,以及我们可以查询哪些数据。在我们的示例中,我们将创建一个简单的 schema,其中包含一个名为 hello
的字段,它将返回一个字符串。
在你的项目目录下创建一个名为 schema.js
的文件,并将以下代码复制到其中:
-- -------------------- ---- ------- ----- - ------------------ -------------- ------------- - - ------------------- ----- --------- - --- ------------------- ----- -------- ------- - ------ - ----- -------------- -------- -- -- ------ ------- - - --- ----- ------ - --- --------------- ------ --------- --- -------------- - -------
这个代码将创建一个名为 Query
的对象类型,并定义了一个名为 hello
的字段。这个字段返回一个字符串,它将在我们通过 GraphQL 查询它时返回。
创建 GraphQL 中间件
现在我们已经定义了我们的 schema,我们需要将它添加到我们的 Express 应用程序中。为此,我们将使用 express-graphql
中间件。在你的 app.js
文件中添加以下代码:
const graphqlHTTP = require('express-graphql'); const schema = require('./schema'); app.use('/graphql', graphqlHTTP({ schema: schema, graphiql: true }));
这个代码将为我们的应用程序添加一个 GraphQL 中间件。我们将使用 schema
变量来定义我们的 schema,graphiql
参数将启用 GraphiQL,这是一个用于测试和调试 GraphQL 查询的工具。现在我们可以通过访问 http://localhost:3000/graphql
来访问 GraphiQL。
测试 GraphQL 查询
现在我们已经完成了所有的设置工作,我们可以开始编写我们的第一个 GraphQL 查询了。在 GraphiQL 中,尝试以下查询:
{ hello }
这将返回一个包含 Hello world!
的字符串。这是我们在我们的 schema 中定义的 hello
字段的返回值。
结论
通过这个简单的示例,我们已经学习了如何在 Express.js 中使用 GraphQL。现在你可以开始使用 GraphQL 来构建更加强大和灵活的 API 了。如果你想深入学习 GraphQL,可以查看官方文档,其中包含了更多高级的用法和示例代码。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6755784d3af3f99efe4d600e