Пустой массив не сохраняется в таблице DynamoDB с помощью Dynogels + Joi
Я пытаюсь сохранить элемент в таблице DynamoDB, используя Dynogels Orm с joi для типов. Одним из свойств сохраненного элемента являетсяfiles
который представляет собой массив. Изначально я хотел бы, чтобы это значение было пустым массивом.
const projectSchema: SchemaType = {
name: joi.string().optional(),
description: joi.string().optional().allow(null, ""),
**files: joi.array().default([ ]),**
user: joi.alternatives().try(joi.object(), joi.string()).required(),
config: joi.object().optional(),
background: joi.string().optional().allow(null, ""),
status: joi.string().optional(),
metadata: joi.object(),
key: joi.string().optional(),
email: joi.string().optional(),
published: joi.boolean().default(true),
};
Я пробовал, как показано выше, а также путем объединения других функций, таких какvalid()
,allow()
. также я пытался удалитьarray()
и заменил его наany()
но, кажется, ничего не работает. Элемент сохраняется в базе данных без файлов.
Есть ли кто-нибудь, кто имел в этом опыт?
1 ответ
Я не использовал и не слышал оdynogels
раньше, но похоже, что это форк Vogels, который не поддерживает типы списков: https://github.com/clarkie/dynogels#schema-types
Кажется, вам нужно либо использовать набор чисел, либо набор строк, и если это предположение о диногелях верно, и вы должны использовать набор, DynamoDB не допускает пустых наборов. Вам придется сохранить пустую строку в наборе:[""]