📜  basic express graphql - Javascript (1)

📅  最后修改于: 2023-12-03 14:59:30.495000             🧑  作者: Mango

Basic Express GraphQL - JavaScript

本文介绍如何构建一个基础的 Express 服务器,使用 GraphQL 进行数据查询和操作。

前置条件

要开始本教程,需要安装以下软件:

  • Node.js >= 6.x.x
  • NPM >= 3.x.x

如果您没有安装,可以访问官方网站 https://nodejs.org/ 下载并安装。

项目初始化

我们将初始化一个新项目,并添加必要的依赖。

初始化项目
$ mkdir basic-graphql-express
$ cd basic-graphql-express
$ npm init -y
安装依赖
$ npm install express express-graphql graphql
创建服务器

在项目的根目录下创建 index.js 文件,并配置 Express 服务器。

导入依赖
// 文件路径: index.js
const express = require('express');
const graphqlHTTP = require('express-graphql');
const {
  GraphQLSchema,
  GraphQLObjectType,
  GraphQLString
} = require('graphql');
定义schema

我们需要定义一个 GraphQLSchema,它由多个 GraphQLObjectType 组成。每个 GraphQLObjectType 表示一个类型,并定义具有它的字段。

现在,我们定义一个只有一个 HelloWorld 字段的 Query 类型:

// 文件路径: index.js
const schema = new GraphQLSchema({
  query: new GraphQLObjectType({
    name: 'Query',
    fields: () => ({
      hello: {
        type: GraphQLString,
        resolve: () => 'world'
      }
    })
  })
});
配置服务器

首先,我们实例化 express 并将端口设置为 4000

// 文件路径: index.js
const app = express();
const PORT = 4000;

然后,我们为服务器添加一个 GraphQL 中间件,它将处理所有 GraphQL 请求。

// 文件路径: index.js
app.use('/graphql', graphqlHTTP({
  schema: schema,
  graphiql: true
}));

最后,我们启动服务器并侦听端口。

// 文件路径: index.js
app.listen(PORT, () => {
  console.log(`Server is listening on port ${PORT}`);
});
测试服务器

启动服务器并在浏览器中访问 http://localhost:4000/graphql。它应该将您带到 GraphQL 界面,您可以在其中测试查询。

尝试运行以下查询:

{
  hello
}

它应该返回以下输出:

{
  "data": {
    "hello": "world"
  }
}
结论

您已经成功地创建了一个基础的 Express 服务器,并使用 GraphQL 进行数据查询和操作。这只是 GraphQL 的基础,您可以继续学习和扩展它来满足您的需求。