[英]why is graphql returning “cannot return null of non-nullable field mutation.createAccnt”
[英]Updating/editing user data in graphql(Cannot return null for non-nullable field Mutation.updateUser)
所以我希望用户能够在 graphql 中编辑他的数据(在本例中为电子邮件),但我收到“无法为不可空字段 Mutation.updateUser 返回 null”错误,我不知道出了什么问题
我的定义:
type Mutation{
updateUser(id: ID! email: String!): User!
}
type User{
id: ID!
email: String!
token: String!
createdAt: String!
username: String!
bio: String,
}
代码:
module.exports = {
Mutation: {
async updateUser(parent, args) {
return User.findOneAndUpdate({ id: args.id }, { email: args.email }, { new: true })
}
}
}
用户架构:
const userSchema = new Schema({
username: String,
password: String,
email: String,
createdAt: String,
bio: String,
});
像这样定义您的架构。 假设您需要将bio字段设为nullable = true
,只需将其设为required = false
。 它会解决你的问题。
const userSchema = new Schema({
username: {type: String, required: true},
password: {type: String, required: true},
email: {type: String, required: true},
bio: {type: String, required: false},
}, {timestamps: true});
此外,为了更好的代码实践,在您的架构中使用{timestamps: true}
它将自动生成您的createdAt , updatedAT列您无需显式定义这些列。 这些列将自动生成和更新。
您可以更新架构,以便突变可以返回 null 而不会引发错误。
type Mutation{
updateUser(id: ID!, email: String!): User
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.