【发布时间】:2019-11-13 18:28:26
【问题描述】:
我在查询 GraphQL 查询中的枚举数组时遇到了一些问题。我期望数组或权限将根据类型与用户一起返回
奇怪的是,当我在操场上进行相同的查询时(对于我的 Prisma 或 Apollo-Server 服务器),我确实取回了数组。
我的查询如下所示:
const user = await ctx.db.query.user({
where: {
id: ctx.userId
}
});
我的类型定义如下所示:
type User {
id: ID! @id
name: String!
email: String! @unique
password: String!
club: String!
permissions: [Permission!]! @scalarList(strategy: RELATION)
createdAt: DateTime! @createdAt
updatedAt: DateTime! @updatedAt
}
权限看起来像
enum Permission {
ADMIN
CLUB_ADMIN
USER
FRIEND
}
我没有包含我的查询解析器,因为我刚刚使用“转发到”将其转发到数据库
但是用户的CL是
{ id: 'cjxm9ohfqvkvh0b5963iy734i',
name: 'BERTIE BOBBINS',
email: 'BERTIE@DOGS.COM',
password: '$2b$10$eLPoBuuenogLabiFb4tRFu0KV7LI4LxARhHecPYVbP0qnt5VvcZ3W',
club: 'Dog Club',
createdAt: '2019-07-02T20:30:49.670Z',
updatedAt: '2019-07-02T20:30:49.670Z' }
所以不包括 Permissions 数组。
【问题讨论】:
-
如果它在操场上有效,它就有效,所以问题一定是您的客户端查询。为什么用户拥有一系列权限?一个用户不是只有一种权限类型吗?
-
每个权限都与一组不同的权限相关,可以是用户,也可以是俱乐部管理员、管理员等。我还没有进入客户端查询。这只是查询 prisma db 和 Apollo server db,查询直接取自生成的模式。我认为,当使用枚举数组创建记录时,您必须使用“集合”,我是否需要显式“获取”数组的内容,如果需要,操场如何以及如何工作?跨度>
-
遇到了同样的问题。我还没有找到解决办法,但是如果你想返回权限字段,你需要将它作为返回字段传入,同时将
info对象作为ctx.db.query.user的第二个参数传入功能
标签: graphql apollo-server prisma