我正在使用postsConnection无限滚动查询。它包含诸如 之类的变量after。进行赞成突变后,我想refetchQueries......像这样
const upvote = await client.mutate({
mutation: UPVOTE_MUTATION,
variables: {
postId: this.props.post.id
},
refetchQueries: [
{ query: POST_AUTHOR_QUERY }
]
})
Run Code Online (Sandbox Code Playgroud)
上面的代码给出错误,因为POST_AUTHOR_QUERY接受很少的变量。这是该查询
export const POST_AUTHOR_QUERY = gql`
query POST_AUTHOR_QUERY($authorUsername: String! $orderBy: PostOrderByInput $after: String){
postsAuthorConnection(authorUsername: $authorUsername orderBy: $orderBy after: $after) {
....
}
}
Run Code Online (Sandbox Code Playgroud)
我不想手动添加变量。变量已经存储在缓存中。使用时如何重复使用它们refetchQueries???
以下是我读过的有关此问题的一些资源
在架构中保持嵌套对象顺序的最佳方法是什么。
我的架构:
type Article {
id: ID! @id
pages: [Page!]!
}
type Page {
id: ID! @id
}
Run Code Online (Sandbox Code Playgroud)
这就是我试图对页面进行排序的方法(不成功):
updateArticle({
variables: {
aricle.id,
data: {
pages: {
connect: reorderPages(aricle.pages)
}
}
}
Run Code Online (Sandbox Code Playgroud)
解析器:
t.field("updateArticle", {
type: "Article",
args: {
id: idArg(),
data: t.prismaType.updateArticle.args.data
},
resolve: (_, { id, data }) => {
return ctx.prisma.updateArticle({
where: { id },
data
});
}
});
Run Code Online (Sandbox Code Playgroud)
我了解为什么这种方法是错误的。我想应该通过连接表中的订单索引将订单写入数据库。我不知道如何通过GraphQL / Nexus / Prisma / MySQL处理该问题。
我想创建一个新的 graphql api,但我有一个正在努力解决的问题。
该代码是开源的,可以在以下位置找到: https: //github.com/glitr-io/glitr-api
我想创建一个突变来创建具有关系的记录...似乎该记录是使用所有预期的关系正确创建的(当直接检查到数据库时),但是该方法返回的值create<YourTableName>缺少所有关系。
...所以我在 api 上收到错误,因为“无法为不可为空的字段 Meme.author 返回 null。”。我无法弄清楚我的代码中可能有什么问题。
解析器如下所示:
...
const newMeme = await ctx.prisma.createMeme({
author: {
connect: { id: userId },
},
memeItems: {
create: memeItems.map(({
type,
meta,
value,
style,
tags = []
}) => ({
type,
meta,
value,
style,
tags: {
create: tags.map(({ name = '' }) => (
{
name
}
))
}
}))
},
tags: {
create: tags.map(({ name = '' }) => (
{
name
}
))
} …Run Code Online (Sandbox Code Playgroud) 我无法使用 apollo Studio。迁移到 Graphql 游乐场后。当我尝试在本地主机中运行并将我重定向到 apollo studio sanbox https://studio.apollographql.com/sandbox?endpoint=http%3A%2F%2Flocalhost%3A5018%2Fgraphql时:无法连接到本地主机。
请帮忙解决这个问题
我正在尝试使用 Prisma 和其他工具为我的应用程序创建一个友谊机制。在文档中,它显示了以下示例,说明如何创建多对多自关系:
model User {
id Int @id @default(autoincrement())
name String?
followedBy Follows[] @relation("following")
following Follows[] @relation("follower")
}
model Follows {
follower User @relation("follower", fields: [followerId], references: [id])
followerId Int
following User @relation("following", fields: [followingId], references: [id])
followingId Int
@@id([followerId, followingId])
}
Run Code Online (Sandbox Code Playgroud)
我已经实现了这个并且它有效,但是问题是对于友谊来说,没有“关注”和“跟随者”,你们只是朋友。目前,当我查询时,我必须查询这两个字段才能找到用户的所有朋友。有没有办法只用一个字段来定义这种类型的关系?那么我们只有一个用户的好友列表吗?
我按照Prisma 提供的GraphQL Prisma Typescript示例创建了一个简单的数据模型,为 Prisma 客户端和解析器生成了代码等。
我的数据模型包括以下节点:
type User {
id: ID! @unique
displayName: String!
}
type SystemUserLogin {
id: ID! @unique
username: String! @unique
passwordEnvironmentVariable: String!
user: User!
}
Run Code Online (Sandbox Code Playgroud)
我已经播种了系统用户和用户。
mutation {
systemUserLogin: createSystemUserLogin({
data: {
username: "SYSTEM",
passwordEnvironmentVariable: "SYSTEM_PASSWORD",
user: {
create: {
displayName: "System User"
}
}
}
})
}
Run Code Online (Sandbox Code Playgroud)
我创建了一个示例突变login:
login: async (_parent, { username, password }, ctx) => {
let user
const systemUser = await ctx.db.systemUserLogin({ username })
const valid = …Run Code Online (Sandbox Code Playgroud) 我想用Prisma实现一个简单的搜索功能,我已经看到了有关使用该where子句的一些信息,但是它区分大小写,所以它不是一个好的解决方案。
我也看过一些使用外部服务的教程。我不想使用任何外部服务。我想做一些尽可能简单的事情。
有什么办法可以将查询调整为不区分大小写?还是你们推荐的其他方法?
谢谢 :)
我在这里使用了一个 graphql 棱镜后端和一个 graphql 瑜伽快递服务器。在前端,我试图调用注销突变,但它被 CORS 策略阻止。尽管我在我的 graphql 瑜伽服务器中添加了 cors 设置,但我不断收到此错误。GraphQL 查询工作正常,但突变被阻止。我的前端 URL 是“ http://localhost:7777 ”,而yoga服务器运行在“ http://localhost:4444/ ”。错误是:
Access to fetch at 'http://localhost:4444/' from origin 'http://localhost:7777' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
[Network error]: TypeError: Failed to fetch
Run Code Online (Sandbox Code Playgroud)
GraphQL Yoga 服务器 Cors …
我Order在我的datamodel.prisma文件中创建了一个实体。在那里它应该自动生成名为orderRef. createOrder对于每个突变调用,它应该为Order 实体的字段自动生成增量值。
对于第一个订单,“orderRef”字段的值应为 OD1,第二个订单的“orderRef”字段的值应为 OD2,依此类推。例如:
(OD1, OD2, .... OD124, ..... )
实现这一目标的最简单方法是什么?是的,值应该是字符串,而不是数字。
prisma-graphql ×10
graphql ×6
prisma ×6
javascript ×3
apollo ×2
react-apollo ×2
express ×1
many-to-many ×1
nexus-prisma ×1
prisma2 ×1
schema ×1