Graphql 如何在将变异提交到数据库之前执行指令?

Graphql 如何在将变异提交到数据库之前执行指令?,graphql,directive,apollo-server,graphql-mutation,neo4j-graphql-js,Graphql,Directive,Apollo Server,Graphql Mutation,Neo4j Graphql Js,我正在尝试将国际化功能添加到我的数据库中。 如果需要复制所有可翻译字段,那么维护模式graphql将非常困难 type Quest { name @i18n # simple } type Quest { nameEn nameJa nameFr ... # omg } 我面临的问题是字段指令只在查询过程中执行(或者,一旦变异完成,返回结果) 我不知道如何使用解析器做类似的事情。对于任何可能的变异,我想检查是否有任何字段具有@i18n指令,并执行

我正在尝试将国际化功能添加到我的数据库中。 如果需要复制所有可翻译字段,那么维护模式graphql将非常困难

type Quest {
    name @i18n  # simple
} 

type Quest {
    nameEn
    nameJa
    nameFr
    ...  # omg
}
我面临的问题是字段指令只在查询过程中执行(或者,一旦变异完成,返回结果)

我不知道如何使用解析器做类似的事情。对于任何可能的变异,我想检查是否有任何字段具有
@i18n
指令,并执行它(以便它从上下文中获取我用户的语言区域设置,并使用区域设置作为后缀修改字段)

换句话说,我想发出一个指令来修改字段的键,而不是它的值

你将如何做到这一点

我的问题是有意概括的,但如果有特定于平台的解决方案,我将在API级别使用GrandTack和Neo4j graphql js,Neo4j作为db和Neo4j graphql js与Apollo服务器配合使用


编辑:通过在生成时修改架构,要求以不同的方式解决我的问题。

奇怪的要求…字段名?真的吗?这会伤害客户端…指令可以传递有关将要求转换为上下文的信息,使解析程序可以访问此信息…或添加字段解析程序参数(args)?…更一般的…它不应该在ORM层上实现吗(使上下文i18n/lang中的数据源具有感知能力)?奇怪的要求…字段名称?真的吗?它会伤害客户机…指令可以传递有关将要求转换为上下文的信息,使分解器可以访问此信息…或添加字段分解器参数(args)?更一般的…它不应该在ORM层上实现吗(使上下文i18n/lang中的数据源具有感知性)?