Помогите разобраться с ошибкой ValidationError [SequelizeValidationError]: notNull Violation: type.name cannot be null

Рейтинг: 0Ответов: 1Опубликовано: 08.03.2023

Прошу помощи у вас, форумчане. У меня существует таблица Type, в которой хранятся типы товаров некоего магазина.

const Type = sequelize.define('type',
    {
        id: {type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true},
        name: {type: DataTypes.STRING, unique: true, allowNull: false}
    }
)

Для типа я написал контроллер, в котором хранятся функции добавления нового типа товара и получение уже имеющихся:

const {Type} = require('../models/models')
const ApiError = require('../error/ApiError')

class TypeController {
    async create(req, res) {
        const {name} = req.body
        const type = await Type.create({name})
        return res.json(type)
    }
    async getAll(req, res) {

    }

}

module.exports = new TypeController()

В постмане я создаю запрос на добавление (Post) имени нового типа товара, для теста: введите сюда описание изображения

после чего и вылезает ошибка о пустом имени типа. Объясните пожалуйста, где может быть ошибка. Заранее спасибо.

UPD: Чуть не забыл, вот полный код ошибки.

ValidationError [SequelizeValidationError]: notNull Violation: type.name cannot be null
    at InstanceValidator._validate (F:\yaumir\server\node_modules\sequelize\lib\instance-validator.js:5
0:13)
    at async InstanceValidator._validateAndRunHooks (F:\yaumir\server\node_modules\sequelize\lib\instan
ce-validator.js:60:7)
    at async InstanceValidator.validate (F:\yaumir\server\node_modules\sequelize\lib\instance-validator
.js:54:12)
    at async model.save (F:\yaumir\server\node_modules\sequelize\lib\model.js:2368:7)
    at async type.create (F:\yaumir\server\node_modules\sequelize\lib\model.js:1344:12)
    at async create (F:\yaumir\server\controllers\typeController.js:7:22) {
  errors: [
    ValidationErrorItem {
      message: 'type.name cannot be null',
      type: 'notNull Violation',
      path: 'name',
      value: null,
      origin: 'CORE',
      instance: type {
        dataValues: {
          id: null,
          name: undefined,
          updatedAt: 2023-03-08T16:37:22.749Z,
          createdAt: 2023-03-08T16:37:22.749Z
        },
        _previousDataValues: {},
        uniqno: 1,
        _changed: Set(0) {},
        _options: {
          isNewRecord: true,
          _schema: null,
          _schemaDelimiter: '',
          attributes: undefined,
          include: undefined,
          raw: undefined,
          silent: undefined
        },
        isNewRecord: true
      },
      validatorKey: 'is_null',
      validatorName: null,
      validatorArgs: []
    }
  ]
}

Ответы

▲ 0

В коде всё, вроде, в порядке. (Но лучше добавить try-catch) А вот в postman зайди и поменяй тип raw данных на с text на json Тип raw данных с text на json