问题标签 [prisma-graphql]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
graphql - 如何查看 Prisma.io DB 托管日志
我有一个 prisma.io 实例,其中有一个本地 graphql 服务器和一个远程数据库(托管在 prisma.io)。我收到带有 id 和消息说明的请求的错误
[GraphQL error]: Message: Whoops. Looks like an internal server error. Search your server logs for request ID:
我尝试运行prisma logs
但收到The logs command has been replaced by the cluster logs command.
. 我尝试运行prisma cluster logs
并接收As mentioned in Prisma 1.7 release notes: https://github.com/prismagraphql/prisma/releases/tag/1.7.0
. 现在我不确定如何查看服务器日志。
react-native - 是否有任何本地 GraphQL 数据库用于 react-native?
我在后端使用graphql-yoga作为服务器,在后端使用prisma作为 GraphQL 数据库,现在我正在寻找本地 GraphQL 数据库,但我找不到任何东西,我担心 react-native 没有本地 GraphQL 数据库:(
graphql - 带有 Prisma 和 Zeit.now 的 GraphQL API。无法连接到服务器错误
我正在尝试与 Prisma 一起部署 GraphQL API 并使用 Zeit.now。我正在关注prisma.io文档,当我以“现在”的最后一步进行部署时,我一直在碰壁。
当我在部署后导航到 now.sh url 时,我收到“无法访问服务器”错误,并且我的架构侧边栏只显示了一个 spinny。
我还关注了howtographql.com文档,了解如何设置 GraphQL API 和 Prisma,仅供参考。
prisma - 查询发送到 Prisma 服务器/数据库之前的访问控制过滤
现在我正在使用accesscontrol
它来管理 ACL,它工作得很好。它看起来像这样:
但是,在Query
来自 GraphQL 的方法上,我不知道如何过滤对数据库的请求。例如,在嵌套查询中,它可能如下所示:
所以在解析器上它会检查他们是否可以访问模型,然后它将请求发送到 Prisma 服务器而不过滤 GQL 模式。在这种情况下,假设用户有权读取模型但无权访问用户。理想情况下,我想permission.filter(...)
在将实际请求模式(信息?)发送到 Prisma 之前对其进行处理。你们有没有人解决过这个问题?当然,可以在请求解决后对其进行过滤,但是这种级别的计算不是必需的,如果滥用可能会导致问题。
graphql - 在客户端和服务器之间共享片段
我在我的 React/Apollo 应用程序中设置了一堆 graphQL 片段,但我真的需要在我的 Node 服务器上访问它们。
例如,在我的客户中,我正在尝试执行此查询,以获取所有相关Person
实体Company
:
现在,我不能只传递info
到我的服务器上的查询,因为context.db.query.person
显然不会有“人”的密钥。
理想情况下,我可以去:
...但这不起作用,因为服务器没有片段。目前,我通过将大量的graphQL从客户端复制粘贴到应用程序来解决这个问题,但这是一个非常糟糕的解决方案。
有答案吗,还是一切都需要加倍?
graphql - 瑜伽graphql服务器+棱镜服务器:多租户
我正在使用 Prisma Server 和 Yoga GraphQL 为多租户数据库设置后端环境
为了管理多租户,我们选择使用 Prisma Server 的“env”(dev/stage/prod)来处理它。没关系,Prisma 服务器不难管理,现在我们为每个租户都有一个端点,例如:http://localhost:4466/service/tenant/
之后,很容易使用 graphql get-schema 从 Prisma 中提取 *.graphql。
但是现在,困难在于:如何为我需要的服务和租户设置一个 GraphQL 服务器?
基于不同的例子 / tuto / docs / ...我找不到在我的 index.js 中设置 GraphQL Server 的方法来说:监听多个 URI 并且每个 URI 都连接了一个 prisma 服务器。
例如,我需要:
GraphQL Server 端点
http://localhost:4000/service-1/client-1/
只能是请求http://localhost:4466/service-1/client-1/
而对于
client-2
(第二个租户)http://localhost:4000/service-1/client-2/
只能是请求http://localhost:4466/service-1/client-2/
GraphQL Server 似乎每个端口只能启动一次(这里是 4000)
[编辑] 这里有一个代码来说明https://github.com/mouchimotte/prisma-yoga-multitenancy
graphql - GraphQL 数据建模 - 扩展类型 (Prisma)
在我的 Prisma 数据模型中,我从一个基本的用户类型开始,如下所示:
现在用户可以有两个角色:作为候选人或作为与雇主关联的用户。如果是候选人,则用户还应具有一组应用程序和一组资格,如果与雇主相关联,则它应具有访问级别和对雇主的引用。
首先,有什么方法可以扩展 GraphQL 数据建模中的基本类型?如果是这样,我将如何去做?
如果没有,我可以看到使用了三种不同的方法,我很好奇每种方法的优缺点是什么:
- 有两种不同的类型
CandidateUser
和EmployerUser
,每种类型都有字段name
,email
,password
。我发现这种方法有两个问题:@unique
标记email
不可靠,我必须编写自定义验证以确保该字段在两种类型中都是唯一的;并且拥有一个接收电子邮件并获取用户相应数据的登录功能不再是微不足道的:它需要在两个表中进行查找。
像这样:
同样是两种不同的类型,但包含一个
/li>RootUser
,name
andemail
,password
和CandidateUser
andEmployerUser
每个都有一个对 a 的一对一引用RootUser
。这将@unique
在电子邮件字段上强制执行标签,但查找仍然很重要。扩展
/li>User
为将 EmployerUser 和 CandidateUser 中的字段作为可选参数。这是一种非常简单的方法,但我需要自定义处理来强制执行需要的字段(例如,我不能将雇主标记为必填项,因为候选人不存在该字段)。
我真的想问是否有更好的方法来解决这个问题。我对 GraphQL 还是很陌生,并不是最好的数据建模者,但我会非常感谢任何朝着正确方向发展的推动 :)
如果除了我列出的三个之外我别无选择,那么哪一个最有意义?
authentication - (graphql,prisma)我如何在登录(登录)时忽略(通过)检查身份验证?
我在创建 graphql 服务器和检查身份验证时遇到问题。我使用 Prisma 自动创建了模式,并通过创建“signin”突变手动添加到模式中。我还添加了jwt检查(auth)中间件,如下代码所示:
问题是即使在登录完成后也会检查令牌。有没有办法在请求登录交互时不确认令牌,或者如果是这样,我该如何克服它?(客户端未登录时没有令牌是正确的吗?)
graphql - Prisma - 预加载的 mysql 数据库上的 Graphql 查询返回空
寻找如何调试它或它可能返回空的原因。
我将 Prisma graphql 与 mysql 数据库一起使用,我能够用数据预加载数据库,然后设置架构以匹配数据库。
例如我有架构:
并在数据库中创建它:
一切正常,操场识别模式。但是当我尝试
它只是返回
我手动连接到数据库并且表中有数据,我不确定还有什么可以尝试或如何调试它。
graphql - 使用 Prisma 生成的包装器查询节点时包含关系
我正在关注 Prisma 提供的GraphQL Prisma Typescript示例,并创建了一个简单的数据模型,为 Prisma 客户端和解析器等生成了代码。
我的数据模型包括以下节点:
我已经播种了系统用户和用户。
我创建了一个示例突变login
:
但无论我做什么,systemUser.user
总是未定义!
这是有道理的 - 客户端包装器如何知道在没有我告诉它的情况下递归到图中的“深度”?
但是我怎么能告诉它我想要包含这个User
关系呢?
编辑:我尝试了下面的建议来使用prisma-client
.
但是我的解析器似乎都没有被调用...
和...