如何解决Prisma-具有两个唯一字段的类型上的选择器
我正在尝试实现解析器,该解析器将检查具有给定登录名的用户是否存在于数据库中。但是我在Prisma中的where选择器上遇到了困难。
所以我的类型是用户:
type User {
UserID: ID! @id
Login: String! @unique
Password: String!
Phone: String!
Mail: String!
Comments: [Comment!]
@relation(
name: "AllCommentsOfUser"
fields: [UserID]
references: [CommentID]
)
Likes: [Like!]
@relation(name: "AllLikesOfUser",fields: [UserID],references: [LikeID])
createdAt: DateTime! @createdAt
}
这是Prisma生成的查询
user(where: UserWhereUniqueInput!): User
input UserWhereUniqueInput {
UserID: ID
Login: String
}
在登录功能中,我正在尝试检查具有给定登录名的用户是否存在于我的数据库中:
async login(parent,{ email,password,username },ctx,info) {
const user = await ctx.prisma.user({ username }); // Option 1
const user = await ctx.prisma.user({ Login: username }); // Option 2
if (!user) {
throw new Error(`No such user found for email: ${username}`);
}
const valid = await bcrypt.compare(password,user.password);
if (!valid) {
throw new Error("Invalid password");
}
return {
token: jwt.sign({ userId: user.id },process.env.JWT_SECRET),user,};
},},
每次我都出现以下错误消息:
您为User上的where选择器提供了无效的参数。请提供一个唯一的字段和值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。