问题标签 [nexus-prisma]

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.

0 投票
2 回答
1392 浏览

prisma - 如何在 prisma 迁移工具中使用 DECIMAL(10,2)?

我需要保存DECIMAL(10,2)在数据库中。MySQL里面有类型DECIMAL

MySQL 文档:

https://dev.mysql.com/doc/refman/8.0/en/fixed-point-types.html

棱镜 2.0 文档:

https://www.prisma.io/docs/reference/database-connectors/mysql

可能的 Prisma 2.0 流程:

https://www.prisma.io/docs/understand-prisma/introduction#typical-prisma-workflows

  • 我正在使用Prisma Migrate流程并看到映射受到限制。
  • 我看到它可以在Introspection流程中完成。

是否有支持 mysql 数据类型的计划,例如DECIMAL(10,2)in Prisma Migrateflow?

0 投票
0 回答
360 浏览

graphql - 使用 graphql/nexus/prisma/yoga 时避免大量嵌套 SQL 查询

假设使用 library 构建了以下类型的 graphql 模式nexus-prisma

  • Root : 包含 A 的 id 和列表
  • A : 包含 B 的 id 和列表
  • B : 包含 C 的 id 和列表
  • C : 包含 id

我有一个这样构建的graphqlServer:

和一个用户定义的解析器:

当我使用路由“aWithABC”和{ id A { id B { id C { id } } } }解析器中的片段调用服务器时,解析器非常快,并且只对我的 PosgreSQL 服务器执行一个请求,这很棒。

我的问题是,不久之后,graphql 模块向 PostreSQL 发出数百个请求来解析嵌套字段,这需要几秒钟,而它所需要的只是解析器的结果。

有没有办法告诉 graphql 模块在我的解析器之后不需要执行更多请求?

为什么 graphql 模块发出数百个请求,而它只能使用正确的片段调用“prisma.roots()”?

编辑:包的版本:

0 投票
0 回答
1054 浏览

prisma-graphql - 使用 Nexus 在多对多字段上创建 Prisma 2 Mutation

大家好,我在我的节点 js 服务中使用 prisma 2,下面是我如何定义我的模型的架构

所以我想将配置文件连接到对我的突变解析器的兴趣,但我不确定如何使用 prisma 2 连接多对多字段,这是我接近它的方式,但我被卡住了

0 投票
2 回答
2353 浏览

graphql - 由于数组参数,Prisma 无法创建用户类型?

这是我在 schema.graphql 中的 InputType:

这是我的突变:

我的兴趣只是一个字符串数组,例如:['abcd', 'def']

但我收到了这个错误:

该错误将根据数组中有多少项重复出现,例如:Unknown arg '1' 等等,同样的错误消息,我该如何解决这个问题?

0 投票
1 回答
2250 浏览

graphql - 使用 nexus-prisma graphql 处理文件上传

我正在尝试将文件从我的前端应用程序上传到我的服务器,但我不断收到这个奇怪的错误,不知道为什么会这样。

错误是前端:

后端错误:

这就是我添加上传标量的方式

这就是我在我的 React/NextJS 应用程序中制作 uplaod 客户端的方式

即使尝试使用我的前端应用程序以外的其他东西来运行突变,我也会遇到同样的错误,所以我想问题出在我的后端设置上,即使我搜索了很多方法来做到这一点,但似乎没有一个工作。

0 投票
1 回答
895 浏览

graphql - 从 Prisma2 的辅助表中获取数据

我有一个User包含用户数据的表。我还有一个Relationship包含 aparent_id和 achild_id以及递增的表id。每个父母可以有很多孩子,我正在尝试使用parent_id. 我目前正在获取一个数组,但该数组仅包含Relationship表数据。

如何从User表中获取数据?我的印象是,由于存在关系,因此以下应该起作用,但事实并非如此。

相关代码如下:
查询:

架构.棱镜:

0 投票
1 回答
165 浏览

javascript - 测试graphql解析器时如何制作虚拟上下文?

我想测试一些 graphql 突变。但我不确定在编写测试时要给出什么作为上下文。例如,我想调用 createPost 突变:

这里作为一个 dummyContext 我正在使用这个:

但是,它不起作用。内部createPost变异logincheker方法称为:

我在运行测试用例时遇到了这个错误

AssertionError: expected promise to be fulfilled but it was rejected with 'TypeError: Authorization.replace is not a function

0 投票
1 回答
86 浏览

prisma-graphql - 为什么 nexus dev 命令运行应用程序两次,以及如何修复它?

我使用 nexus graphql 框架创建了超级简单的应用程序。

第一步是这样的:

https://www.nexusjs.org/#/tutorial/chapter-1-setup-and-first-query

api/app.ts输入了代码:

唯一的依赖是uid生成唯一键。

当我使用 ts-node 运行它时,我可以看到:

在此处输入图像描述

所以我们可以看到:

  1. 一旦队列开始。
  2. 有一个队列。
  3. 它可以正常工作。

但是当我nexus通过命令运行这段代码时,nexus dev我看到了:

在此处输入图像描述

所以:

  1. 两个队列开始了。
  2. 它们同时运行。
  3. 他们有独立创建的变量i

问题:

  • 有人遇到这个问题吗?
  • 我应该如何更改我的代码以获得像 in 中的单个队列ts-node
  • 或者也许它是错误的nexus

更新:

我检查了版本是否存在此问题> =0.21.1-next.2

0.21.1-next.1应用程序中运行一次。

重现步骤:

有提交引入了这种行为:

https://github.com/graphql-nexus/nexus/commit/ce1d45359e33af81169b7ebdc7bee6718fe313a8

有类似但没有参考文档的onMainThread变量REFLECTION_ENV_VAR。我无法理解这段代码在做什么?

这可能会在未来记录在这个地方:

https://www.nexusjs.org/#/architecture?id=build-flow

但现在有:

在此处输入图像描述

更新 2

我找到了解决方法:

但这只是暂时的破解而不是解决方案。完整示例:

https://github.com/graphql-nexus/nexus/discussions/983

0 投票
1 回答
327 浏览

typescript - 将 Typescript 泛型与 any 相结合而不会丢失类型

这与我为@nexus/schema库(类型安全的 GraphQL)构建的插件有关,但它纯粹是 Typescript 输入问题。

我有一个规则系统,我的所有规则都是从这个接口派生的:

注意:RootValueandArgsValue是用于获取“真实”生成的类型或 return 的类型any,这是 nexus 用于键入所有内容的技巧,而无需显式指定类型。 请参阅此链接以获取源代码

最基本的两个是:

然后我定义助手:

我的问题是我需要能够支持适用于所有类型/字段的通用规则和仅适用于一种类型/字段的特定规则。但是,如果我将通用规则与特定规则结合起来,则生成的规则就是Rule<any, any>允许接受不良规则的规则。

我猜这部分与 Typescript 中缺乏存在类型有关,这基本上迫使我首先使用 a any,但是有没有一种解决方法可以用来防止类型 theany覆盖我的类型。我发现的一种解决方法是显式键入and,但从可用性的角度来看这并不好。

编辑 2:我创建了一个带有简化版本的游乐场,以便更容易查看问题

编辑 3:正如评论中所指出的,never适用于前面的示例。因此,我创建了这个never不起作用的示例。我还修改了这个问题,以便所有信息都在问题中供后代使用。我还发现never不能使用的原因是因为ArgsValue类型。

非常感谢!

编辑1:

我找到了一种解决方法,尽管它需要更改界面:

随着and成为:

and返回正确类型的,FullRule<'MyType','MyField'>因此将拒绝badRule. 但它确实需要我添加新方法来创建部分规则和通用规则。

0 投票
1 回答
1044 浏览

json - 如何在 prisma、graphql nexus 框架中使用 JSON 类型?

请举例说明如何使用 JSON 类型

我需要突变代码。

我用的答案来自

带有 JSON 补丁的 GraphQL 突变

crud通过启用

并发送这个突变:

但我有回应: