标签: prisma-graphql

在react-apollo中使用refetchQueries时使用现有变量

我正在使用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???

以下是我读过的有关此问题的一些资源

https://github.com/apollographql/react-apollo/issues/817

https://github.com/apollographql/apollo-client/issues/1900

javascript apollo graphql react-apollo prisma-graphql

7
推荐指数
2
解决办法
3290
查看次数

Nexus-prisma:订购嵌套连接

在架构中保持嵌套对象顺序的最佳方法是什么。

我的架构:

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处理该问题。

javascript graphql prisma-graphql nexus-prisma

7
推荐指数
1
解决办法
288
查看次数

Prisma 未返回已创建相关记录

我想创建一个新的 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)

graphql prisma prisma-graphql

7
推荐指数
1
解决办法
6967
查看次数

如何解决 Apollo Studio Sanbox Cors?

我无法使用 apollo Studio。迁移到 Graphql 游乐场后。当我尝试在本地主机中运行并将我重定向到 apollo studio sanbox https://studio.apollographql.com/sandbox?endpoint=http%3A%2F%2Flocalhost%3A5018%2Fgraphql时:无法连接到本地主机。

请帮忙解决这个问题

apollo apollo-server prisma prisma-graphql prisma2

7
推荐指数
1
解决办法
3979
查看次数

多对多自关系 Prisma - 一个字段

我正在尝试使用 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)

我已经实现了这个并且它有效,但是问题是对于友谊来说,没有“关注”和“跟随者”,你们只是朋友。目前,当我查询时,我必须查询这两个字段才能找到用户的所有朋友。有没有办法只用一个字段来定义这种类型的关系?那么我们只有一个用户的好友列表吗?

schema many-to-many prisma prisma-graphql

7
推荐指数
1
解决办法
1395
查看次数

使用 Prisma 生成的包装器查询节点时包含关系

我按照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)

plumatic-schema graphql prisma prisma-graphql

6
推荐指数
1
解决办法
6689
查看次数

在Prisma / GraphQL中实现搜索功能

我想用Prisma实现一个简单的搜索功能,我已经看到了有关使用该where子句的一些信息,但是它区分大小写,所以它不是一个好的解决方案。

我也看过一些使用外部服务的教程。我不想使用任何外部服务。我想做一些尽可能简单的事情。

有什么办法可以将查询调整为不区分大小写?还是你们推荐的其他方法?

谢谢 :)

graphql prisma prisma-graphql

6
推荐指数
1
解决办法
584
查看次数

CORS 阻止了 GraphQL Yoga 中的突变

我在这里使用了一个 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 …

javascript express graphql react-apollo prisma-graphql

6
推荐指数
1
解决办法
2396
查看次数

为棱镜自动生成增量字段

Order在我的datamodel.prisma文件中创建了一个实体。在那里它应该自动生成名为orderRef. createOrder对于每个突变调用,它应该为Order 实体的字段自动生成增量值。

对于第一个订单,“orderRef”字段的值应为 OD1,第二个订单的“orderRef”字段的值应为 OD2,依此类推。例如:

(OD1, OD2, .... OD124, ..... )

实现这一目标的最简单方法是什么?是的,值应该是字符串,而不是数字。

prisma prisma-graphql

6
推荐指数
1
解决办法
1962
查看次数

6
推荐指数
1
解决办法
5484
查看次数