问题标签 [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.
mongodb - 我正在尝试查找哪些字段为空,以便我可以从具有空的数据库中返回数据(非标量字段)
我有具有以下数据模型的类别
在这个我想运行查询,我可以在其中 parentId 等于 null 的类别数组。
每当我尝试运行查询时,我都会得到所有字段,包括不为空的字段。
node.js - GraphQL/Prisma 客户端服务器错误:变量“$data”不能是非输入类型“LinkCreateInput!”。(第 1 行,第 18 列)
我正在关注 How To GraphQL Node.js 教程,并且我在“使用 Prisma 绑定连接服务器和数据库”部分。我想我已经根据教程正确设置了所有内容,但是当我尝试在 GraphQL Playground 中执行后突变时,它会引发此错误:
我什至不确定我应该返回什么,但是当我执行“信息”查询时,我会从我的 index.js 文件中返回信息:“数据”:{“信息”:“这是用于黑客新闻克隆!,Get Rigth Witcha,我得到你!” }
所以,我知道信息查询正在工作。当我尝试执行 Feed 查询时,我在 GraphQl 操场上得到了这个错误:
因此,只有 Info 查询有效,其他查询不断发回错误。我很迷茫,我真的很想用 GRaohQL 获得更多技能。当我转到我的 Prisma Client 时,我无法访问我的服务。他们只让我查看我的服务器列表。我有控制台的屏幕截图,但我没有足够的声誉来发布这个问题。
我已经尝试过每一步并确保我的代码是正确的。我还检查了 HowToGraphql git 存储库,但是他们只有完整的服务器代码,我想从头开始构建我的代码,所以他们的代码没有多大帮助。我不确定问题出在 Prisma Client 还是我的代码上。任何反馈或帮助将不胜感激!!
这是存储库的链接: https ://github.com/thelovesmith/HckrNws-Cln-GrphQL-Srvr
请帮忙!!
src/index.js:
架构.graphql:
棱镜.yml:
数据模型.棱镜:
更新
当我运行 Prisma Deploy 时,我会收到一条错误消息:
graphql - 将 prisma 客户端与关系解析器一起使用
我在我的 graphql 服务器中使用prisma 客户端。
遵循最佳实践,我将解析器层设置为一个薄层,它将实际获取数据的任务委托给数据访问层。数据访问层还使用dataloader 执行授权和请求级缓存等操作。
我找不到在此设置中获取实体关系的好方法,因为 prisma 客户端使用 promise 对象上的函数调用链来获取关系,但是由于我的解析器不直接调用 prisma 客户端,它没有访问权限到 prisma 客户端承诺,因此不能调用链式关系函数。
请参见以下示例:
样本数据模型:
公寓解析器示例:
buildingByApartmentId
数据访问层的示例实现:
由于以下几个原因,这不是一个好的实现:
- 我已经在缓存中提取了公寓,但我无法重复使用它,因为我必须再次获取公寓才能到达大楼。
- 对于公寓中的每一个关系,我都需要实现一个像这样的特殊函数来通过 apartemntId 获取该特定关系。这很浪费,并且错过了 prisma 为我实现大多数查询的要点。
有没有更好的方法来实现我所缺少的?
我知道棱镜绑定可以解决这个问题,但是:
- Prisma 客户端似乎是使用 primsa 的最新方式。
- 出于授权目的,prisma 客户端功能更强大。
graphql - 突变不起作用 GraphQL、Prisma、Yoga
在这个例子中如何添加用户?我尝试以各种方式使用突变,但不起作用。
我尝试这样的事情:
接下来
我尝试了不同的版本,但我真的找不到解决方案
node.js - Prisma:在突变解析器中使用计数
我有一个突变createPet
,如果用户已经创建了 5 只宠物,我希望它抛出一个错误。我在想这样的事情会起作用,但它不会:
我也没有在文档中找到任何东西
javascript - 无法用字符串数组编写突变
不能在带有列表标量类型的 graphql 游乐场中使用 set。
我已经创建了我的 Prisma datamodel.graphql 并部署了它。我的运动类型中的一个字段是运动列表。我使用列表标量类型来定义这个字段,并在我的 mutation.js 文件中编写了随附的突变。当我尝试在我的 graphql 操场上添加一个新练习时,我收到了这个错误。
这是我在 graphql 操场上写的突变。
这是 datamodel.graphql 文件。
当我编写没有任何字符串的突变时,只有一个像这样的空数组,
一切正常,练习被添加为一个新节点。
当我尝试用这样的集合编写突变时,
我也得到一个错误。
我可以登录 prisma.io 并通过手动创建新节点将字符串添加到数组中。
我不确定为什么我不能在我的突变中添加字符串列表。=
graphql - Prisma graphql updateNode 突变
我正在尝试使用在 GraphQL-yoga 服务器上运行的 Prisma 在 graphql 中设置 updateNode 突变。这是我尝试运行突变时收到的错误:
"变量\"$_v0_data\" 的值无效{ 数据:{ 名称:\"Test\" },其中:{ id: \"cjqulnr0yftuh0a71sdkek697\" } };字段 \"data\" 未由 CocktailUpdateInput 类型定义。 \n变量 \"$_v0_data\" 获得无效值 { data: { name: \"Test\" },其中:{ id: \"cjqulnr0yftuh0a71sdkek697\" } };字段 \"where\" 未由 CocktailUpdateInput 类型定义。 "
这是我的突变解析器:
数据模型.棱镜:
架构.graphql
最后这是我要在操场上执行的操作:
prisma - 按关系的 id 过滤
我想在棱镜中过滤关系 id 并获得相同的实体,而不是相关的实体。简单的例子:
在这种情况下,我想要所有Meta
拥有 id 所有者和 id 所有者userID
的Area
实体areaID
。
什么是可能的:
这一切都Meta
没有该区域的过滤器。
我想要的是这样的:
由于属性区域只是一个关系,prisma 没有给我过滤甚至获取 id 的机会。
IE:
将产生一个对象数组,例如:
我的问题是,有没有办法在不删除关系和存储简单字符串的情况下获得我想要的结果?
graphql - 我可以将 GraphQL 用于 mongoDB 或 mySQL 吗?
我已经开始学习 GraphQL,发现 GraphQL 是一种很棒的查询语言。但是我想知道我是否可以将 GraphQL 用于现有数据库,例如 mongoDB 或 mySQL。也请解释一下棱镜。prisma 是云数据库还是什么?