无法从 apollo-server-express 导入 SchemaDirectiveVisitor
Posted
技术标签:
【中文标题】无法从 apollo-server-express 导入 SchemaDirectiveVisitor【英文标题】:Unable to import SchemaDirectiveVisitor from apollo-server-express 【发布时间】:2021-10-01 21:30:49 【问题描述】:const SchemaDirectiveVisitor = require('apollo-server-express');
class ReplaceDirective extends SchemaDirectiveVisitor
visitFieldDefinition(field)
const replacement = this.args;
field.resolve = () =>
return replacement
module.exports = Object.freeze( ReplaceDirective )
我得到的错误如下 TypeError: Class extends value undefined is not a constructor or null
【问题讨论】:
【参考方案1】:查看apollo-server/packages/apollo-server-express/src/index.ts,该功能未公开。
SchemaDirectiveVisitor 是 graphql-tools
的遗留函数。
apollo-server-express@2.X.X (last v2.25.2) 使用过graphql-tools 4.0.8 它仍然具有该功能。
您需要固定到apollo-server-express
的v2
版本才能使用该功能。
【讨论】:
谢谢 Manny,但我想坚持使用最新版本。如何在最新版本中制作自定义指令。【参考方案2】:他们摆脱了 SchemaDirectiveVisitor
并添加了两个新函数来简化:mapSchema
和 getDirectives
。
来源: https://www.the-guild.dev/blog/graphql-tools-v6 然后滚动到以下标题。 使用指令修改模式
【讨论】:
以上是关于无法从 apollo-server-express 导入 SchemaDirectiveVisitor的主要内容,如果未能解决你的问题,请参考以下文章
zeit-now v2 + apollo-server-express:操场错误:无法访问服务器
使用 Apollo-Server-Express 从服务器中使用光标分页查询 REST API
在 apollo-server-express 中增加身体限制大小
使用 apollo-server-express 迁移到 3.5.0
graphql + apollo-server-express,如何处理 express authMiddleware 中的身份验证错误?