Почему клиент Apollo вставляет нулевые значения в таблицу для всех полей, даже если они были указаны? - PullRequest
0 голосов
/ 13 апреля 2019

Вот мой код клиента 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.Почему не работает мутация?Я вижу следующую ошибку: «Выполнение (по умолчанию): INSERT INTO» account »(« id »,« user_id »,« username »,« email »,« creationAt »,« updatedAt ») ЗНАЧЕНИЯ (ПО УМОЛЧАНИЮ, $ 1, $ 2,$ 3, $ 4, $ 5) RETURNING *; необработанное отклонение SequelizeDatabaseError: нулевое значение в столбце «пароль» нарушает ненулевое ограничение ».

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

1 Ответ

0 голосов
/ 13 апреля 2019

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

...