问题标签 [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 投票
1 回答
649 浏览

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. 现在我不确定如何查看服务器日志。

0 投票
1 回答
402 浏览

react-native - 是否有任何本地 GraphQL 数据库用于 react-native?

我在后端使用graphql-yoga作为服务器,在后端使用prisma作为 GraphQL 数据库,现在我正在寻找本地 GraphQL 数据库,但我找不到任何东西,我担心 react-native 没有本地 GraphQL 数据库:(

0 投票
1 回答
281 浏览

graphql - 带有 Prisma 和 Zeit.now 的 GraphQL API。无法连接到服务器错误

我正在尝试与 Prisma 一起部署 GraphQL API 并使用 Zeit.now。我正在关注prisma.io文档,当我以“现在”的最后一步进行部署时,我一直在碰壁。

当我在部署后导航到 now.sh url 时,我收到“无法访问服务器”错误,并且我的架构侧边栏只显示了一个 spinny。

我还关注了howtographql.com文档,了解如何设置 GraphQL API 和 Prisma,仅供参考。

0 投票
1 回答
1475 浏览

reactjs - GraphQL 以数组形式返回查询结果

我一直在关注https://www.howtographql.com/上的 React-Apollo 和 Node.js GraphQL 教程,并且能够启动并运行演示。

我现在想做的是将我的查询结果作为数组返回。

我的 schema.graphql 文件如下所示:

解析器看起来像:

到目前为止,我尝试过的是:

我应该得到一张门票清单,但我没有定义。

0 投票
2 回答
499 浏览

angular - 使用 graphql 防止关系数据泄漏利用

你如何防止人们查询他们不应该在 graphql 中看到的对象的关系?

例如,假设我们有以下数据模型。

这是一种设置,其中有可以访问某些板的用户。并BoardUserRole确定用户对特定表的角色。

现在,我过来询问我有权使用的董事会并查看其名称。

那很好。但是,如果我更改查询,我可以联系系统的其他用户并查看他们的任务。我基本上可以看到与该用户相关的任何内容。

你如何防止这种类型的查询?

0 投票
2 回答
313 浏览

prisma - 查询发送到 Prisma 服务器/数据库之前的访问控制过滤

现在我正在使用accesscontrol它来管理 ACL,它工作得很好。它看起来像这样:

但是,在Query来自 GraphQL 的方法上,我不知道如何过滤对数据库的请求。例如,在嵌套查询中,它可能如下所示:

所以在解析器上它会检查他们是否可以访问模型,然后它将请求发送到 Prisma 服务器而不过滤 GQL 模式。在这种情况下,假设用户有权读取模型但无权访问用户。理想情况下,我想permission.filter(...)在将实际请求模式(信息?)发送到 Prisma 之前对其进行处理。你们有没有人解决过这个问题?当然,可以在请求解决后对其进行过滤,但是这种级别的计算不是必需的,如果滥用可能会导致问题。

0 投票
1 回答
415 浏览

node.js - GraphQL/Prisma 订阅仅针对 DELETE 触发

我已经使用 Prisma 建立了一个项目,用于处理与服务器之间的通信/存储/检索数据。它本质上与此处的示例架构相同。唯一的主要区别是我的解析器没有分成不同的文件,它们都驻留在 index.js 中。

现在,我正在尝试实现订阅,它将捕获对我的模型的所有更改。但在我的一生中,除了 DELETE 操作之外,我无法订阅触发任何其他操作。我已经阅读了多个论坛帖子和示例,但问题仍然存在。

我的 index.js 订阅解析器如下所示:

我的 schema.graphql 看起来像这样:

我一定遗漏了一些东西,因为我在 Prisma 论坛上发现的任何/所有问题都已在 3 月份通过修复解决。我怀疑这可能与 Async prisma 绑定有关,但这只是直觉。

任何帮助将非常感激。

谢谢,

一个

0 投票
1 回答
340 浏览

typescript - Compiler error with Prisma

I'm preparing a project with GraphQL server, using Prisma to connect with the database, all this with Typscript.

And the compiler is returning me :

Error: Whoops. Looks like an internal server error. Search your server logs for request ID: local:management:cjkzo60s4000e0a01tuoln3l4: {"response":{"data":{"deploy":null},"errors":[{"message":"Whoops. Looks like an internal server error. Search your server logs for request ID: local:management:cjkzo60s4000e0a01tuoln3l4","path":["deploy"],"locations":[{"line":2,"column":9}],"requestId":"local:management:cjkzo60s4000e0a01tuoln3l4"}],"status":200},"request":{"query":" mutation($name: String!, $stage: String! $types: String! $dryRun: Boolean $secrets: [String!], $subscriptions: [FunctionInput!], $force: Boolean) {\n deploy(input: {\n name: $name\n stage: $stage\n types: $types\n dryRun: $dryRun\n secrets: $secrets\n subscriptions: $subscriptions\n force: $force\n }) {\n errors {\n type\n field\n description\n }\n warnings {\n type\n field\n description\n }\n migration {\n ...MigrationFragment\n }\n }\n }\n \nfragment MigrationFragment on Migration {\n revision\n steps {\n type\n __typename\n ... on CreateEnum {\n name\n ce_values: values\n }\n ... on CreateField {\n model\n name\n cf_typeName: typeName\n cf_isRequired: isRequired\n cf_isList: isList\n cf_isUnique: unique\n cf_relation: relation\n cf_defaultValue: default\n cf_enum: enum\n }\n ... on CreateModel {\n name\n }\n ... on CreateRelation {\n name\n leftModel\n rightModel\n }\n ... on DeleteEnum {\n name\n }\n ... on DeleteField {\n model\n name\n }\n ... on DeleteModel {\n name\n }\n ... on DeleteRelation {\n name\n }\n ... on UpdateEnum {\n name\n newName\n values\n }\n ... on UpdateField {\n model\n name\n newName\n typeName\n isRequired\n isList\n isUnique: unique\n relation\n default\n enum\n }\n ... on UpdateModel {\n name\n um_newName: newName\n }\n }\n}\n\n ","variables":{"name":"default","stage":"default","types":"enum UserType {\n CUSTOMER\n MAKER\n ADMIN\n}\n\n\nenum OfferType {\n NORMAL\n LTS\n}\n\n\nenum DesignType {\n MUSIC\n GRAPHIC_ART\n PIXEL_ART\n MOTION_DESIGN\n}\n\nenum StoryType {\n SMALL\n LONG\n}\n\ninterface Account {\n id: ID! @unique\n registered: Boolean! @default(value: \"false\")\n contacts: [Account!]!\n address: Address\n favorite: [Service!]!\n}\n\ntype Address {\n id: ID! @unique\n city: String!\n country: String!\n street: String\n houseNumber: String\n phoneNumber: String\n}\n\ntype User implements Account {\n id: ID! @unique\n registered: Boolean! @default(value: \"false\")\n contacts: [Account!]!\n address: Address\n favorite: [Service!]!\n gender: Gender\n personalData: PersonalData\n type: UserType\n}\n\ntype PersonalData {\n id: ID! @unique\n firstName: String\n lastName: String!\n email: String!\n}\n\ntype Organisation implements Account {\n id: ID! @unique\n registered: Boolean! @default(value: \"false\")\n contacts: [Account!]!\n address: Address\n favorite: [Service!]!\n responsible: User\n}\n\ntype Payment {\n id: ID! @unique\n date: DateTime!\n price: Int!\n}\n\ntype Purchase {\n id: ID! @unique\n payment: Payment!\n seller: Account!\n buyer: Account!\n services: [Service!]!\n}\n\ntype Offer {\n price: Int!\n type: OfferType\n}\n\ninterface Service {\n id: ID! @unique\n creationDate: DateTime!\n updateDate: DateTime!\n comments: [Comment!]!\n author: Account!\n offer: Offer\n}\n\ntype Design implements Service {\n id: ID! @unique\n creationDate: DateTime!\n updateDate: DateTime!\n comments: [Comment!]!\n author: Account!\n offer: Offer\n type: [DesignType!]!\n}\n\ntype Story implements Service {\n id: ID! @unique\n creationDate: DateTime!\n updateDate: DateTime!\n comments: [Comment!]!\n author: Account!\n offer: Offer\n endDate: DateTime!\n type: [StoryType!]!\n}\n\ntype Comment {\n id: ID! @unique\n author: Account! @relation(name: \"Writer\")\n service: Service!\n}\n\n","secrets":null,"subscriptions":[]}}} at GraphQLClient. (/usr/local/lib/node_modules/prisma/node_modules/graphql-request/src/index.ts:72:13) at step (/usr/local/lib/node_modules/prisma/node_modules/graphql-request/dist/src/index.js:40:23) at Object.next (/usr/local/lib/node_modules/prisma/node_modules/graphql-request/dist/src/index.js:21:53) at fulfilled (/usr/local/lib/node_modules/prisma/node_modules/graphql-request/dist/src/index.js:12:58) at at process._tickCallback (internal/process/next_tick.js:160:7)

I hope you could read, and also hope someone can help me!

Thank you for reading :)

0 投票
2 回答
2780 浏览

javascript - GraphQL:更新数组

我在更新解析器中的数组时遇到了一些问题。我正在与typescript.

描述

我在datamodel.graphqlfor Prisma

Prisma连接到服务器,在这GraphQl一个中,我定义了突变:

因此,是时候为给定的突变实现解析器了,我正在这样做:

问题 :

我在查询操场时收到的唯一信息是null我给出的评论。

感谢您阅读到目前为止。

0 投票
1 回答
984 浏览

graphql - 不使用我的自定义数据提供程序(棱镜)

我目前正在基于graphcool的数据提供程序为prisma<ReferenceArrayInput />构建一个数据提供程序,但未能成功运行。

该组件成功地查询了项目的值和所有可用的可能值,但是在尝试匹配两者时似乎失败了。结果,我得到一个标签说At least one of the associated references no longer appears to be available.,没有选择任何值。

这是我的数据提供者返回的数据:

GET_MANY由获取实际选择的请求返回:

GET_LIST以及获取所有可能值 的请求返回的数据:

在 JSX 部分,这是我的代码:

如果需要,我可以尝试为您设置一些东西来重现我的问题,我希望这足以让您帮助我。如果它可以提供帮助,这里是包含我的(非常 wip)数据提供者和仪表板ra-data-prisma的存储库

非常感谢你的帮助。

更新:

如果您想尝试,这里有一个代码框:https ://codesandbox.io/s/xvqm6mnyxz?expanddevtools=1&initialpath=App.js&module=%2Fsrc%2FApp.js

只需尝试编辑 a User,然后在控制台中查看响应以及SelectArrayInput未加载选项。

下面是用于生成 codesanbox 示例中使用的 Prisma API 的数据模型: