emm*_*man 2 javascript node.js express prisma
我正在尝试在 ExpressJS 和 Prisma 中创建 Singup API。
我正在检查给定的电子邮件是否存在于我的数据库中。当我传递电子邮件和密码时,它会抛出 Unknown arg email in where.email for type SignupWhereUniqueInput. Did you mean id? Available args:错误。
我尝试使用 select: { email: true, password: true } 但它不起作用。仅当我传递身份证号码而不是电子邮件时,代码才有效。任何想法这里有什么问题吗?
router.post(`/signup`, async (req, res) => {
const { email, password } = req.body;
const hashPassword = await bcrypt.hash(password, 10);
const checkEmail = await prisma.signup.findUnique({
where: {
email: email
}
});
if (checkEmail) {
return res.status(400).json({
error: "Pick different one"
});
}
const userSignUp = await prisma.signup.create({
data: {
email,
password: hashPassword
}
});
return res.json(userSignUp);
});
// DB Schema
model Signup {
id Int @id @default(autoincrement())
email String
password String
}Run Code Online (Sandbox Code Playgroud)
您收到此错误的原因是emailPrismaSignup模型中的字段不是唯一的。where查询中的选项仅findUnique接受模型的唯一字段。这样做是为了确保查询只能指定一条记录findUnique。如果您有兴趣了解更多信息,Prisma 客户端 API 参考会更深入地解释此行为。
要解决该错误,请使该email字段在 Prisma 架构文件中具有唯一性。更新后的Signup模型应如下所示:
model Signup {
id Int @id @default(autoincrement())
email String @unique
password String
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6085 次 |
| 最近记录: |