Apollo GraphQL“不能为不可为空的字段 Mutation.createUser 返回 null”

Nat*_*anL 5 node.js sequelize.js graphql apollo-server

我知道这是一个比较常见的问题,但我的实现与其他帖子不同。我正在使用最基本的实现,但我无法开始工作。我使用 Sequelize 和 MySQL 作为数据库实现。

解析器.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
            })
        },
    },
}
Run Code Online (Sandbox Code Playgroud)

架构.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;
Run Code Online (Sandbox Code Playgroud)

用户模型

'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;
};
Run Code Online (Sandbox Code Playgroud)

然而,当运行以下突变时:

突变{ createUser(名称:“Nate”,电子邮件:“nate@test.com”){ id } }

我收到:

"errors": [ { "message": "不能为不可为 null 的字段 Mutation.createUser 返回 null。", "locations": [ { "line": 2, "column": 3 } ], "path": [ “创建用户” ],

bee*_*man 1

我有同样的错误。就我而言,问题是我是@Mutation从而type-graphl不是导入的@nestjs/graphql