总结
我们的服务器实现看起来不错,但仍有几处我们在使用旧包。
graphql-tag
让我们进入 src/schema.js
。在文件顶部,我们会看到我们要求 gql
自 apollo-server
。
const { gql } = require("apollo-server");
这是我们安装的 graphql-tag
包的用途!让我们更新 import 以改为使用此包。(请注意,我们现在要求 gql
作为 默认 导出!)
- const { gql } = require("apollo-server");+ const gql = require("graphql-tag")
在底层, apollo-server
(AS3) 使用 gql
直接来自 graphql-tag
,并根据命名导出 gql
,重新导出供我们使用。
新的 @apollo/server
包不再直接导出此实用程序;这就是我们自行安装它的原因。我们可以直接使用 graphql-tag
包,并获取与之前相同的函数。
@apollo/datasource-rest
对于我们最终的更新,导航至 src/datasources/track-api.js
。您会发现我们要求使用旧的 apollo-datasource-rest
软件包。
这是一个简单的更新!让我们用新的 @apollo/datasource-rest
软件包替换掉它 - 其他一切都保持不变。
- const { RESTDataSource } = require('apollo-datasource-rest');+ const { RESTDataSource } = require('@apollo/datasource-rest');
注意:新的 @apollo/datasource-rest
软件包在 "apollo" 和 "datasource" 两个单词之间使用斜杠 (/
) 而不是破折号 (-
)。
启动服务器
我们已完成所有必要的更新来实现最新的Apollo Server 4 个软件包和功能。让我们试一试吧!
在您项目的根目录中,运行 npm start
。
npm start
我们应该看到相同的日志消息列在我们服务器运行的位置。但当我们导航到 localhost:4000
时,我们跳过登录页面并直接转到 Sandbox Explorer。我们的服务器已准备好 查询 了!
query GetTrackTitles {tracksForHome {title}}
尝试上述 查询,我们获得了完全相同的数据。我们的服务器具有与之前相同的功能,但我们拥有了更多灵活性。
使用 Apollo Server 4 构建的服务器比以往任何时候都更易于维护和扩展。这些益处对于构建图形至关重要,无论您的产品(和想象力!)将其带到何处,该图形都可以进行扩展。
要详细了解现在 Apollo Server中有用的其他功能,请访问 有关迁移到版本 4 的官方文档。
感谢您的加入,我们下次见!
分享您对这节课的问题和评论
您的反馈有助于我们提高!如果您遇到困难或困惑,请告诉我们,我们会帮助您。所有评论都是公开的,并且必须遵循 Apollo 行为准则。请注意,已解决或已处理的评论可能会被删除。
您需要一个 GitHub 帐户才能在下面发帖。没有帐户? 转而去我们的 Odyssey 论坛发帖。