NodeJS 使用Dynogels + Joi未将空数组保存到DynamoDB表

iqjalb3h  于 2023-08-04  发布在  Node.js
关注(0)|答案(1)|浏览(120)

我尝试使用dynogels Orm和joi将一个项目保存到DynamoDB表中。保存项的属性之一是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(),但似乎没有任何工作。正在将该项保存到数据库中,但不保存文件。
有没有人有这方面的经验?

xpszyzbs

xpszyzbs1#

我以前没有使用过也没有听说过dynogels,但它似乎是Vogels的一个分支,不支持列表类型:https://github.com/clarkie/dynogels#schema-types
看起来你需要使用一个number-set或string-set,如果dynogels上的这个假设是正确的,你必须使用一个set,DynamoDB不允许空集。你必须在set中存储一个空字符串:[""]

相关问题