用户登录

在 Nest 项目里面,要创建 GraphQL 服务器,需要先安装一个东西。在项目所在目录的下面,执行 npm install ,要安装的是 @nestjs/graphql,apollo-server-express,graphql-tools 还有 graphql,把这几个东西保存在项目的依赖里面。

搭建 GraphQL 服务器的方法有很多, Apollo 是其中一种比较流行的方法,在 Nest 框架里,用到了 Apollo 提供的搭建 GraphQL 服务器的方法。

所以我们除了要安装 @nestjs/graphql 以外,又安装了 apollo-server-express 这个包。它可以让我们用 Apollo 提供的方法基于 express 搭建一个 GraphQL 服务器。express 指的是 express.js,它是一个比较流行的创建 Web 应用的库。

在我们的 Nest 应用里用到了这个 express 提供的功能创建了一个 Web 服务器。所以这里需要用的就是 apollo-server-express 这个包提供的功能,把 GraphQL 跟 Express 服务器集成到一块儿,创建一个 GraphQL 服务器。

graphql-tools 提供了一套东西可以创建 GraphQL 服务器需要用的 Schema。 在 GraphQL 服务器里,Schema 定义的是服务器提供什么样的数据,Resolver 定义的是怎么样获取到这些数据。

配置

打开 AppModule 模块,在文件的顶部,需要从 @nestjs/graphql 这个包里面导入一个东西,导入的是 GraphQLModule 模块。

然后在这个模块的 imports 里面,添加一个 GraphQLModule ,这是一个动态模块,用一下模块上的 forRoot 方法可以配置一下这个模块。

提供一个对象参数,这里添加的配置对象,会转交给 Apollo 服务器。Nest 提供了两种创建 GraphQL 应用的方法,schema-first 还有 code-first。schema-first 就是根据 GraphQL 的 Schema 生成代码,code-first 是用代码生成对应的 Schema。

Schema 是描述数据模型用的东西,就是说明一下我们的 GraphQL 应用里面都提供什么样的数据。

我打算用的是 code-first 这种方法创建 GraphQL 应用,这种方法更简单一些。它会根据我们写的代码自动生成 GraphQL 服务器需要的 Schema。

给这个配置对象提供一个 autoSchemaFile 属性,它的值是存储自动生成的 Schema 文件的位置。可以设置成 schema.gql,这样自动生成的 Schema 会存储在应用根目录下的一个叫 schema.gql 的文件里。

GraphQL 服务器:安装与配置《 企业应用架构:GraphQL 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点