javascript - 使用 Prisma 生成代码的变量错误
问题描述
我正在使用由 Prisma 生成的 createUser,它需要期望 UserCreateInput 的数据。
但是,我有一个错误。
错误
错误:“UserCreateInput!”类型的变量“$data”预期值 但是得到了:{"data":{"name":"bryan","email":"bryan@email.com","password":"$2a$10$U33Z8mkK1hPgR96r6DOrNuxI6vaBSARUwFOgh4vYQq0VmMstgZNhG"}}。原因:“电子邮件”预期的非空值,发现为空。(第 1 行,第 11 列):突变($data:UserCreateInput!){
架构.graphql
type Query {
users: [User!]!
}
type Mutation {
signup(email: String!, password: String!, name: String!): User!
type User {
id: ID!
email: String!
name: String!
clients: [Client]
products: [Product]
}
突变
const bcrypt = require('bcryptjs')
const jwt = require('jsonwebtoken')
const Mutation = {
async signup(root, args, context) {
const email = args.email.toLowerCase()
const password = await bcrypt.hash(args.password, 10)
const user = await context.prisma.createUser({
data: {
name: args.name,
email,
password
}
})
const token = jwt.sign({ userId: user.id }, process.env.APP_SECRET)
context.response.cookie('token', token, {
httpOnly: true,
maxAge: 1000 * 60 * 60 * 24 * 356
})
return user
}
}
module.exports = Mutation
用户的 datamodel.prisma
type User {
id: ID! @id
email: String! @unique
name: String!
password: String!
clients: [Client] @relation(link:INLINE)
products: [Product] @relation(link:INLINE)
transactions: [Transaction] @relation(link:INLINE)
}
解决方案
不需要data
在传递给的对象中包含属性createUser
——只需将参数作为映射传递:
const user = await context.prisma.createUser({
name: args.name,
email,
password,
})
有关其他详细信息和示例,请参阅文档。
推荐阅读
- angular - Angular 9 PrimeNg 如何设置 p-table 边框颜色的样式?
- swift - 使用 Cocoa 在 Swift 4.0 中以编程方式创建复选框的标准方法是什么?
- python - 有没有办法使用中间表中的字段过滤 Django 中的多对多过滤器?
- python - “TypeError:'str'对象不可调用”通过Python在Selenium中使用WebDriverWait for link_text
- flutter - Flutter SharedPreferences 重置数据
- javascript - 如何在javascript中检测精灵对象相互接触?
- python - 如何用uwsgi连接django和nginx?
- apache-kafka-streams - Kafka Stream State Store 分布
- r - 将相关表排列成行
- html - 在文本悬停时显示图像