【问题标题】:Unable to import SchemaDirectiveVisitor from apollo-server-express无法从 apollo-server-express 导入 SchemaDirectiveVisitor
【发布时间】: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

【问题讨论】:

    标签: node.js express graphql express-graphql


    【解决方案1】:

    查看apollo-server/packages/apollo-server-express/src/index.ts,该功能未公开。

    SchemaDirectiveVisitorgraphql-tools 的遗留函数。

    apollo-server-express@2.X.X (last v2.25.2) 使用过graphql-tools 4.0.8 它仍然具有该功能。

    您需要固定到apollo-server-expressv2 版本才能使用该功能。

    【讨论】:

    • 谢谢 Manny,但我想坚持使用最新版本。如何在最新版本中制作自定义指令。
    【解决方案2】:

    他们摆脱了 SchemaDirectiveVisitor 并添加了两个新函数来简化:mapSchemagetDirectives

    来源: https://www.the-guild.dev/blog/graphql-tools-v6 然后滚动到以下标题。 使用指令修改模式

    【讨论】:

      猜你喜欢
      • 2021-02-05
      • 2019-02-13
      • 2021-11-01
      • 2018-04-17
      • 2020-11-08
      • 1970-01-01
      • 2019-09-01
      • 2019-06-26
      相关资源
      最近更新 更多