npm 包 graphql-server-express 使用教程

阅读时长 4 分钟读完

简介

GraphQL 是 Facebook 出品的一种查询语言和服务端执行语言的组合,用于 API 的实现。graphql-server-express 是一个用于将 GraphQL 服务绑定到 Express 服务器上的 npm 包。

本文将为您详细介绍如何使用 graphql-server-express,并提供示例代码。

安装

您可以通过以下命令安装 graphql-server-express:

配置

在你的 Express app 中,你需要创造一个 GraphQL schema 并且创建一个委托的Express 中间件 (middleware) 来处理 GraphQL 请求。

创建 Schema

GraphQL 是一个基于 schema 的查询语言,所以我们首先需要创建一个 schema。 schema 表示了你 API 上可用的 type、query 以及 mutation。

schema 必须定义一个 query 和 mutation 类型,即最顶层的 type。

下面是一个简单的 schema 示例:

这个 schema 定义了一个 query 类型,其中 hello 字段返回字符串类型的“hello”。

创建 Express 中间件 (middleware)

graphql-server-express 提供了 express-graphql 中间件。你需要提供一个 schema,并且中间件处理将用此 schema 来解析查询。此中间件将解析 Query/Mutation 中定义的请求并返回 JSON 结构。下面是一个简单的示例:

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

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

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

------------------- ---------------- ------ ----
展开代码

GraphQL 请求需要被 POST 提交到 /graphql 路径上。可以使用 curl 命令来测试请求 curl -X POST http://localhost:3000/graphql -d '{"query": "{ hello }"}' -H 'Content-Type: application/json'。这个请求将执行上面的 Query,服务器将返回 JSON 形式的结果。

示例代码

下面是一个完整的示例代码,包括了 schema 的定义和关联 api 的 express 配置:

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

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

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

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

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

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

------------ ----- ---- -- -- --
  -------------------- ------ ----- -- --------------------------------------------
--
展开代码

运行节点服务器 npm run dev 这将启动应用程序并在控制台输出以下信息:

结论

在 Express 应用程序中为 GraphQL 查询添加支持非常简单,graphql-server-express 提供了一个用于将 GraphQL 服务绑定到 Express 服务器的中间件,你只需要提供 schema 和 middleware。

希望这篇文章对你和学习和使用 graphql-server-express 有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5eedba99b5cbfe1ea06118f5

纠错
反馈

纠错反馈