我知道这是一个比较常见的问题,但是我的实现与其他职位有所不同。我正在使用无法上班的最基本的实现。我正在将Sequelize与MySQL一起用作数据库实现。
resolvers.js
>
schema.js
<=
用户模型
:
但是,当运行以下突变时:
变异{createUser(name:“ Nate”,电子邮件:“ nate@test.com”){ id}}
我收到:
“错误”:[ { “ message”:“无法为不可为空的字段Mutation.createUser返回null。”, “位置”:[ { “行”:2 “栏”:3 } ], “路径”:[ “创建用户” ]
答案 0 :(得分:0)
我有同样的错误。就我而言,问题是我从@Mutation
而非type-graphl
导入@nestjs/graphql
。
答案 1 :(得分:0)
在我的情况下,这是因为createUser调用不是异步的。希望这可以帮助某人:
return await models.User.create({
name,
email
})
答案 2 :(得分:0)
此错误是因为您的解析器未返回任何有效的用户对象。只需console.log()createUser解析器即可检查其返回的内容。然后您可以找到问题的原因
答案 3 :(得分:0)
我的回答不会针对这个问题,但我认为它可能对某人有所帮助,因为我自己也遇到过这个问题并且很难找到解决方案。某些键用于 sequelize 中的关联,并且当您打算检索该类型时,应该在 graphql 中使用该键。
例如,Orders 属于 orderStatuses,在我的例子中使用的键是 status
,如第 56 行
答案 4 :(得分:0)
例如,您可以简单地删除 !
后的字段,例如null
type User {
id: ID!
name: String
email: String
created_at: DateTime!
updated_at: DateTime!
}
答案 5 :(得分:0)
就我而言,这是架构中指定的内容与解析器返回的内容之间的类型不匹配:架构指定了单个 User
(不正确),但解析器返回了 {{1 }}