Пустой массив не сохраняется в таблице 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 не допускает пустых наборов. Вам придется сохранить пустую строку в наборе:[""]

Другие вопросы по тегам