我知道这是一个有点常见的问题,但我的实现与其他帖子不同。我正在使用我无法工作的最基本的实现。我使用MySQL后缀作为数据库实现。
resolvers.js
const resolvers = {
Query: {
async getStudent (root, { id }, { models }) {
return models.User.findByPk(id)
},
},
Mutation: {
async createUser (root, { name, email }, { models }) {
return models.User.create({
name,
email
})
},
},
}schema.js
const { gql } = require('apollo-server-express');
const typeDefs = gql`
type User {
id: Int!
name: String!
email: String!
}
type Query {
getUser(id: Int!): User
getAllUsers: [User!]!
}
type Mutation {
createUser(name: String!, email: String!): User!
}`
module.exports = typeDefs;用户模型
'use strict';
module.exports = (sequelize, DataTypes) => {
const User = sequelize.define('User', {
name: DataTypes.STRING,
email: DataTypes.STRING
}, {});
User.associate = function(models) {
// associations can be defined here
};
return User;
};然而,在运行以下突变时:
变异{createUser(名称:“Nate”,电子邮件:“nate@test.com”){ id }
我收到:
“错误”:[{“消息”:“不能为非空字段Mutation.createUser返回null”。)、“位置”:{“行”:2、“列”:3}、“路径”:"createUser“,
发布于 2019-09-17 22:05:03
在我的例子中,这是因为createUser调用不是异步的。希望这能帮助到一些人:
return models.User.create({
name,
email
})发布于 2019-09-17 03:10:45
我也犯了同样的错误。在我的例子中,问题是我从type-graphl而不是@nestjs/graphql导入了@nestjs/graphql。
发布于 2019-10-27 08:45:58
此错误是因为解析器不返回任何有效的用户对象。只需console.log() createUser解析器来检查它返回的内容。然后,您可以跟踪问题的原因。
https://stackoverflow.com/questions/56538163
复制相似问题