- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我是使用 Nodejs 的“GraphQL”新手。我陷入了双向模式映射。帖子 <-> 作者。使用graphql和 graphql-relay模块。
以下是我们正在使用的两个架构。
--posts.js // here we are requiring authors.js
const {
AuthorType,
schema: AuthorSchema,
AuthorsConnection
} = require('./authors');
class Post {}
const {
nodeInterface,
nodeField
} = nodeDefinitions(
globalId => {
const {
type,
id
} = fromGlobalId(globalId);
// return based on the id
return DataSource['posts'][0];
},
obj => {
console.log(" : PostType : ", PostType);
// type to be return
return Post;
}
);
const PostType = new GraphQLObjectType({
"name": "PostType",
"description": "Posts type and it's relevant fields",
"fields": () => ({
"id": globalIdField('Post'),
"title": {
"type": GraphQLString
},
"body": {
"type": GraphQLString
},
"author": {
"type": AuthorsConnection,
"resolve": (parent, argument, root, currentSdl) => {
console.log("v1, v2, v3, v4 :", parent);
if (parent.author)
return connectionFromArray(DataSource['authors'], {})
return [];
}
}
}),
isTypeOf: Post,
interfaces: [nodeInterface]
});
const {
connectionType: PostsConnection,
edgeType: GQLPostEdge
} = connectionDefinitions({
name: "Post",
nodeType: PostType
});
module.exports = exports = {
PostType,
PostsConnection,
schema: {
post: nodeField,
posts: {
type: PostsConnection,
resolve: (root, v2, v3) => {
return connectionFromArray(DataSource['posts'], {});
}
}
}
};
--authors.js // here we have required posts.js
const {
PostType,
PostsConnection
} = require('./posts');
class Author {}
const {
nodeInterface,
nodeField
} = nodeDefinitions(
globalId => {
const {
type,
id
} = fromGlobalId(globalId);
// return based on the id
return DataSource['authors'][0];
},
obj => {
console.log(" : Authorype : ", Authorype);
// type to be return
return Author;
}
);
const AuthorType = new GraphQLObjectType({
"name": "AuthorType",
"description": "Author type and it's relevant fields",
"fields": () => ({
"id": globalIdField('Author'),
"firstName": {
"type": GraphQLString
},
"lastName": {
"type": GraphQLString
},
authorPosts: {
type: PostsConnection,
resolve: (parent, args, root, context) => {
return connectionFromArray(DataSource['posts'], {});
}
}
}),
isTypeOf: null,
interfaces: [nodeInterface]
});
const {
connectionType: AuthorsConnection,
edgeType: GQLAuthorEdge
} = connectionDefinitions({
name: "Author",
nodeType: AuthorType
});
module.exports = exports = {
AuthorType,
AuthorsConnection,
schema: {
author: nodeField,
authors: {
type: AuthorsConnection,
resolve: (root, v2, v3) => {
return connectionFromArray(DataSource['authors'], {});
}
}
}
};
一旦我合并了 GraphQL 的上述架构,我就会收到以下错误。
Error: Schema must contain unique named types but contains multiple types named "Node".
我尝试调试这个问题,以下是我观察到的情况。
请让我知道这里出了什么问题,它与 nodeDefinitions
函数相关吗?
最佳答案
它确实与nodeDefinitions
函数有关。来自 graphql-relay
文档:
nodeDefinitions
returns theNode
interface that objects can implement, and returns thenode
root field to include on the query type. To implement this, it takes a function to resolve an ID to an object, and to determine the type of a given object.
您调用了两次,这导致 Node
类型被定义两次,并且您引用了其中的一个:
schema: {
post: nodeField,
// ...
schema: {
author: nodeField,
这导致了错误 - 现在有两个无效的 Node
独立实例。
解决方案是只调用一次nodeDefinitions
,然后将生成的nodeField
和nodeInterface
的引用传递到相关地方。然后,您的 globalId => {...}
函数将需要查看 type
以确定如何获取相关记录,无论是作者还是帖子。
关于node.js - 循环模式给出错误为 "Error: Schema must contain unique named types but contains multiple types named "Node".",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52931324/
Schema.org中的 priceRange 属性是什么意思? https://schema.org/priceRange 我不明白这是什么意思,我住在哈萨克斯坦,也许我的文化或语言不明确。您能举一
用作引用:https://support.google.com/webmasters/answer/146750?hl=en 您会注意到在“产品”下有一个属性类别,此外页面下方还有一个示例: Too
我对 Doctrine 很陌生。我用 Doctrine 为我自己做了两个小项目,但现在我要为我的客户创建大项目。该项目将有50多个表。有没有办法生成schema.yml?我尝试了 DB Designe
在 Mongoose 模式中,我们可以通过两种方式创建方法 SchemaName.methods.functionName 和 SchemaName.statics.functionName . 静态
我读了这个Google doc .它说我们不使用列表中的产品。 那么对于产品列表(具有多页的类似产品的类别,如“鞋子”),推荐使用哪种模式? 我用这个: { "@context": "htt
我目前在做DBpedia数据集,想通过wikidata实现schema.org和DBpedia的映射。因此我想知道 schema.org 和 wikidata 之间是否存在任何映射。 最佳答案 我认为
如果看一下 Movie在 schema.org 中输入,actor 和 actors 属性都是允许的(actor 取代 actors)。但是 author 和 contributor 属性没有等效项。
我正在尝试将 Vertica 架构从一个物理集群导出和导入到另一个物理集群。我的测试实例有一个集群,我的生产实例有 3 个集群。 我探索了以下选项,但它们仅限于在一个物理 Vertica 实例上移动数
我们有一些餐厅有多个地点或分支机构。我想包含正确的 Schema.org 标记,但找不到任何允许列出多个餐厅的内容。 每家餐厅都有自己的地址、电子邮件、电话和营业时间,甚至可能是“分店名称”。 两个分
我在一个页面中有多个综合评分片段。 有没有办法让其中之一成为默认值?将显示在搜索引擎结果中的那个? 谢谢大家! 更新:该网页本质上是品牌的页面。它包含品牌评论的总评分及其产品列表(每个产品的总评分)。
有谁知道是否可以用另一个 XML 模式验证一个 XML 模式?如果是这样,那里有引用实现吗?我想使用 JAXB 解析模式文档。 最佳答案 当然。大多数时候,您只需将浏览器指向用作 XML 文档 nam
我正在尝试创建 springdoc swagger 文档,我想代表一个具有数据类型 Map 的请求正文以更好的方式为客户提供可读性。但是当我声明 @io.swagger.v3.oas.annotati
当我们创建数据库时会创建一个公共(public)模式,如果我们不指定任何模式,则会在公共(public)模式下创建表。如果您在从数据库中删除公共(public)模式时看到或遇到任何问题,能否告诉我,因
网站的根页面(即 http://example.com/ )的特殊之处在于它是默认的着陆页。它可能包含许多不同的对象类型。 它可能被认为是一个网站,或者一个博客等... 但它是否也应该被标记为给定对象
我网站的产品页面有面包屑导航。 Product 类型没有breadcrumb。 我这样做: "@type": "Webpage", "breadcrumb": {... "mainEntity":
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 1 年前。 社区1年前审
我正在尝试从模式注册表中检索给定 kafka 主题的模式主题版本。我可以使用 client.register(schema-name, schema) 成功发布新版本,但我不确定如何检索版本。我在下面
我有一个地方/本地企业,它有各种字段,可以很好地映射到 schema.org 条目。有一个字段我不知道如何标记。我们有指向该企业社交媒体帐户的链接,例如他们的 Twitter 帐户、Facebook
我在 schema.schema 中有一个 number_of_servers 字段,我需要为其设置一个范围。有什么办法吗? Schema: map[string]*schema.Schema{
在向我的站点添加微数据时,我使用了 schema.org 上的词汇表。 目前,我使用 http://schema.org/SoftwareApplication 来标记软件。由于 schema.org
我是一名优秀的程序员,十分优秀!