GraphQL 是一种强大的 API 查询语言,它构建于现代 Web 技术之上,通过一个强大的查询语言一站式服务查询。
Heroku 则是一种云平台,它可以轻松地构建、部署和管理应用程序。
PostgreSQL 是一个功能强大且可靠的关系型数据库。
使用 GraphQL 结合 Heroku 和 PostgreSQL,可以轻松地开发出性能强大、稳定可靠的前端应用。
本文将为读者详细介绍在 GraphQL 中使用 Heroku 和 PostgreSQL 的步骤,并提供详细的示例代码和指导意义。
准备工作
在开始之前,您需要准备以下设备和环境:
- Heroku 账户
- PostgreSQL 数据库
- Node.js
创建 Heroku 应用程序
首先,我们需要在 Heroku 上创建一个新的应用程序,并连接到您的版本控制代码库。
可以使用 Heroku 的 CLI 工具,也可以在 Heroku 上进行手动操作。
创建应用程序后,需要先设置 Heroku 上运行的环境变量,包括数据库的连接字符串、各种 API 的密钥和访问令牌等。
连接到 Heroku 应用程序后,您需要为该应用程序选择合适的 Buildpack,并为其配置正确的环境变量。
配置 PostgreSQL 数据库
在 Heroku 上使用 PostgreSQL 数据库非常简单,只需要添加一个插件即可。
在 Heroku 的插件市场中搜索 PostgreSQL 插件,并将其安装到您的应用程序中。
安装插件后,可以轻松地连接到数据库,并使用 Heroku 的管理工具进行管理和维护。
需要注意的是,您需要正确地配置数据库的权限和访问令牌,以确保您的数据得到了适当的保护。
GraphQL API 的开发
现在,我们已经将 Heroku 和 PostgreSQL 设置好了,并准备好在其中开发一个 GraphQL API。
为此,我们将使用 Express.js 构建一个基于 Node.js 的应用程序,通过 npm 包管理器安装 gql、express、apollo-server-express 和其他必要的软件包。
首先,在您的项目根目录中,安装必要的软件包:
npm install gql express apollo-server-express graphql-tools type-graphql typeorm reflect-metadata pg
接下来,我们需要创建一个名为 index.js
的启动脚本,其中我们将配置 Apollo 服务器和数据库连接池,并将它们连接起来。
-- -------------------- ---- ------- ------ ------------------- ------ - ------------ - ---- ------------------------ ------ - ----------- - ---- ---------- ------ - ---------------- - ---- ---------- ------ - ------------ - ---- --------------------------- ----- ------- - ------------------- ----- --- - ---------- ------------ --- ---- -- - --------------- --------- --- ------ -- -- - ----- ------------------- ----- ------ - ----- ------------- ---------- --------------- --- ----- ------ - --- -------------- ------ --- ----- --------------- ------------------------ --- --- ----- ----- ---- - ---------------- -- ----- ---------------- -- -- ------------------- ------- -- ---- -----------
在这个示例代码中,我们将创建一个名为 UserResolver
的 GraphQL 解析器;该解析器定义了一些用于从数据库中获取或修改用户数据的查询和操作。
在使用 GraphQL 时,我们还需要定义一个名为 schema
的对象,该对象根据我们提供的解析器列表来构建 GraphQL 查询。
在 createConnection()
函数中,我们通过使用 TypeORM 库进行数据库的初始化和连接。该操作将创建一个数据库连接池,使您可以轻松地连接到您的 PostgreSQL 数据库。
最后,我们还需要将 Apollo 服务器中间件应用到正在运行的 Express 应用程序中,并启动服务器。
使用 GraphQL API
现在,我们已经成功地创建了一个 GraphQL API,可以通过提供正确的查询和操作来查询和修改用户数据。
我们可以访问 API 中已定义的 /graphql
端点,并与该端点进行交互,以利用这些查询和操作。
例如,假设我们想要检索数据库中的特定用户信息。我们可以使用以下查询:
query { user(id: "12345") { name email } }
在使用 GraphQL 时,我们还可以很容易地定义我们自己的查询和操作,以实现更高级的功能和需求。
例如,我们可以创建一个查询,该查询将在数据库中搜索所有邮箱地址包含特定字符的用户,并返回这些用户的名称和电子邮件:
query { findUsersByEmail(search: "gmail") { name email } }
在这个示例代码中,我们首先定义了一个名为 findUsersByEmail
的查询,该查询将接受一个名为search
的参数。
该参数将用于从数据库中查找所有包含指定字符串的用户。
然后,我们在 UserResolver
中创建一个函数,函数将根据这个查询并使用预定义的 TypeORM 查询语言从数据库中检索对应的用户数据。
最后,我们指定了将要返回的数据列表,包括每个匹配用户的名称和电子邮件。
结论
在 GraphQL 中使用 Heroku 和 PostgreSQL,可以轻松地创建出功能强大、稳定可靠的前端应用程序。
通过使用示例代码和相关技术指导,您可以很容易地开始构建您自己的 GraphQL API,并使用 Heroku 和 PostgreSQL 管理您的数据。
总体而言,使用 GraphQL 现在已经成为了前端开发的主流趋势,因此值得花费时间和精力深入学习和掌握。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/66f50434c5c563ced56a05dd