![](/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.