问题标签 [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.
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 Migrate
flow?
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()”?
编辑:包的版本:
prisma-graphql - 使用 Nexus 在多对多字段上创建 Prisma 2 Mutation
大家好,我在我的节点 js 服务中使用 prisma 2,下面是我如何定义我的模型的架构
所以我想将配置文件连接到对我的突变解析器的兴趣,但我不确定如何使用 prisma 2 连接多对多字段,这是我接近它的方式,但我被卡住了
graphql - 由于数组参数,Prisma 无法创建用户类型?
这是我在 schema.graphql 中的 InputType:
这是我的突变:
我的兴趣只是一个字符串数组,例如:['abcd', 'def']
但我收到了这个错误:
该错误将根据数组中有多少项重复出现,例如:Unknown arg '1' 等等,同样的错误消息,我该如何解决这个问题?
graphql - 使用 nexus-prisma graphql 处理文件上传
我正在尝试将文件从我的前端应用程序上传到我的服务器,但我不断收到这个奇怪的错误,不知道为什么会这样。
错误是前端:
后端错误:
这就是我添加上传标量的方式
这就是我在我的 React/NextJS 应用程序中制作 uplaod 客户端的方式
即使尝试使用我的前端应用程序以外的其他东西来运行突变,我也会遇到同样的错误,所以我想问题出在我的后端设置上,即使我搜索了很多方法来做到这一点,但似乎没有一个工作。
graphql - 从 Prisma2 的辅助表中获取数据
我有一个User
包含用户数据的表。我还有一个Relationship
包含 aparent_id
和 achild_id
以及递增的表id
。每个父母可以有很多孩子,我正在尝试使用parent_id
. 我目前正在获取一个数组,但该数组仅包含Relationship
表数据。
如何从User
表中获取数据?我的印象是,由于存在关系,因此以下应该起作用,但事实并非如此。
相关代码如下:
查询:
架构.棱镜:
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
prisma-graphql - 为什么 nexus dev 命令运行应用程序两次,以及如何修复它?
我使用 nexus graphql 框架创建了超级简单的应用程序。
第一步是这样的:
https://www.nexusjs.org/#/tutorial/chapter-1-setup-and-first-query
我api/app.ts
输入了代码:
唯一的依赖是uid
生成唯一键。
当我使用 ts-node 运行它时,我可以看到:
所以我们可以看到:
- 一旦队列开始。
- 有一个队列。
- 它可以正常工作。
但是当我nexus
通过命令运行这段代码时,nexus dev
我看到了:
所以:
- 两个队列开始了。
- 它们同时运行。
- 他们有独立创建的变量
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
我找到了解决方法:
但这只是暂时的破解而不是解决方案。完整示例:
typescript - 将 Typescript 泛型与 any 相结合而不会丢失类型
这与我为@nexus/schema库(类型安全的 GraphQL)构建的插件有关,但它纯粹是 Typescript 输入问题。
我有一个规则系统,我的所有规则都是从这个接口派生的:
注意:RootValue
andArgsValue
是用于获取“真实”生成的类型或 return 的类型any
,这是 nexus 用于键入所有内容的技巧,而无需显式指定类型。
请参阅此链接以获取源代码。
最基本的两个是:
然后我定义助手:
我的问题是我需要能够支持适用于所有类型/字段的通用规则和仅适用于一种类型/字段的特定规则。但是,如果我将通用规则与特定规则结合起来,则生成的规则就是Rule<any, any>
允许接受不良规则的规则。
我猜这部分与 Typescript 中缺乏存在类型有关,这基本上迫使我首先使用 a any
,但是有没有一种解决方法可以用来防止类型 theany
覆盖我的类型。我发现的一种解决方法是显式键入and
,但从可用性的角度来看这并不好。
编辑 2:我创建了一个带有简化版本的游乐场,以便更容易查看问题。
编辑 3:正如评论中所指出的,never
适用于前面的示例。因此,我创建了这个never
不起作用的示例。我还修改了这个问题,以便所有信息都在问题中供后代使用。我还发现never
不能使用的原因是因为ArgsValue
类型。
非常感谢!
编辑1:
我找到了一种解决方法,尽管它需要更改界面:
随着and
成为:
and
返回正确类型的,FullRule<'MyType','MyField'>
因此将拒绝badRule
. 但它确实需要我添加新方法来创建部分规则和通用规则。