Почему клиент Apollo вставляет нулевые значения в таблицу для всех полей, даже если значения были указаны?

#node.js #postgresql #graphql #sequelize.js #apollo

#node.js #postgresql #graphql #sequelize.js #apollo

Вопрос:

Вот мой код клиента Apollo:

     mutation  {
  createUser(user_id: 3333, username: "third user", email: "third@email.com", password: "supersecret"){
    user_id
    username
    email
    password
  }
}
  

И ниже приведена моя схема typedef:

 const typeDef = gql 
`
    type Query {
        "These are the queries we define in our query type"
        me(user_id: ID): User
    }
    "How to define the structure of user? Below is an object type that does this:"
    type User {
        user_id: ID,
        username: String,
        email: String,
        password: String
    }

    type Mutation {
        createUser(username: String!, email: String!, password: String, user_id: ID): User!
    }
`;
  

Кроме того, я использую sequalize ORM с postgres, и мой dbIndex таков:

 const Sequelize = require('sequelize');

require('dotenv').config();

const sortDb = new Sequelize(
    `${process.env.DATABASE}`,
    process.env.DATABASE_USER,
    process.env.DATABASE_PASSWORD,
    {
      dialect: 'postgres',
    },
);

sortDb
    .authenticate()
    .then(() => {
        console.log('Connected to SORT MY MIND DB');
    })
    .catch((err) => {
        console.error('Unable to connect to DB', err);
    });

// create a DB model which will correspond to 
const account = sortDb.define('account', {
    user_id: {type: Sequelize.INTEGER},
    username: {type: Sequelize.STRING},
    passowrd: {type: Sequelize.STRING},
    email: {type: Sequelize.STRING}
});

module.exports.account = account;
  

Мой запрос выполняется отлично и извлекает данные из моей таблицы postgres. Почему не выполняется мутация? Я вижу следующую ошибку: «Выполнение (по умолчанию): ВСТАВИТЬ В «учетные записи» («id», «user_id»,»имя пользователя», «email»,»createdAt»,»updatedAt») ЗНАЧЕНИЯ (ПО УМОЛЧАНИЮ,$1,$2,$3,$4,$5) ВОЗВРАТ *;
Необработанное отклонение SequelizeDatabaseError: нулевое значение в столбце «пароль» нарушает ограничение not-null «.

Это явно означает, что клиент Apollo пытается оскорбить все нулевые значения в моей таблице. Как я могу это исправить?

Комментарии:

1. Рад, что вы поняли это 🙂 Вопросы о проблемах, возникающих в результате опечатки, считаются не по теме, поэтому давайте закроем этот вопрос.

Ответ №1:

Ааа, это была опечатка в dbIndex!!! «пароль» Фу: D