Я использую Sequelize в качестве ORM для своего проекта.У меня есть эта структура:
const Event = sequelize.define('event', {
// fields defined
});
const Question = sequelize.define('question', {
description: {
type: Sequelize.STRING,
allowNull: false,
defaultValue: '',
validate: {
notEmpty: { msg: 'Description should be set.' }
},
},
// other fields defined
});
Event.hasMany(Question);
Question.belongsTo(Event);
Затем я создаю экземпляр модели события, с ассоциированным, как это:
const body = {
questions: [
{ description: '' } // is obviously invalid
],
// some other fields
}
const newEvent = await Event.create(body, {
include: [ Question ]
});
Если у меня есть ошибки проверки для самого экземпляра события,он возвращает SequelizeValidationError
, где я вижу атрибут path
для каждого ValidationErrorItem
.Однако, когда у меня есть ошибка проверки на дочерней модели, атрибут path
для этой ошибки проверки неясен:
{
"message": "Description should be set.",
"type": "Validation error",
"path": "description",
"value": "",
"origin": "FUNCTION",
"instance": {
"required": true,
"id": null,
"description": "",
"event_id": 60,
"updated_at": "2018-06-11T12:25:04.666Z",
"created_at": "2018-06-11T12:25:04.666Z"
},
"validatorKey": "notEmpty",
"validatorName": "notEmpty",
"validatorArgs": [
{
"msg": "Description should be set."
}
],
"__raw": {
"validatorName": "notEmpty",
"validatorArgs": [
{
"msg": "Description should be set."
}
]
}
Проблема в том, что неясно, что вызвало эту ошибку и какой дочерний объект недопустим.Когда я использовал Mongoose в качестве ORM, если бы я делал то же самое, атрибут path
был бы равен чему-то вроде questions.0.description
, и это стало бы более понятным, чтобы вы могли видеть, какой дочерний элемент недопустим.
Итак, мой вопрос: есть ли способ установить атрибут path
при проверке дочерних моделей?