![](/img/trans.png)
[英]Apollo Server - GraphQL Error: There can be only one type named "Query"
[英]Error: There can be only one fragment named “fragmentName”
我正在从此更改架构的格式:
var OldSchema = new GraphQLSchema({
query: queryType,
mutation: mutationType
});
对此:
typeDef = `
type Query {
posts: [Post]
author: Author
}
`;
const NewSchema = makeExecutableSchema({
typeDefs: [typeDef],
resolvers: resolvers
});
由于我有很多字段,并且想将它们从旧格式一一转换为新格式,因此我使用了来自graphql-tools的功能mergeSchemas :
export const RootSchema = mergeSchemas({
schemas: [NewSchema, OldSchema]
});
当我尝试创建查询(仅从OldSchema获取字段)时,出现错误**只能有一个名为“ duty”的片段。
这是我的查询的样子:
query {
person {
...personFragment
}
}
fragment conceptFragment on Person {
jobs {
... on techJob {
...activities
}
... on carpentryJob {
...skillSet
}
}
}
fragment activities on techJob {
duties {
...duty
}
}
fragment duty on Duties {
id
}
fragment skillSet on carpentryJob {
skills {
...dutiesSkill
}
}
fragment dutiesSkill on Skill {
duties {
...duty
}
}
我知道该错误正在分析中发生,并且似乎为OldSchema和RootSchema进行了查询验证,但是RootSchema失败了。
您也许可以给其中一个片段起alias
? 喜欢:
fragment activities on techJob {
activities: duties {
...duty
}
}
和
fragment dutiesSkill on Skill {
dutiesSkill: duties {
...duty
}
}
通过更新到v14.0.0-rc.2版本已解决了此问题。 没有提及要解决的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.