Javascript 如何修复DynamoDB TypeError上的Joi错误:child.schema.\u getLabel不是函数

Javascript 如何修复DynamoDB TypeError上的Joi错误:child.schema.\u getLabel不是函数,javascript,node.js,amazon-dynamodb,joi,vogels,Javascript,Node.js,Amazon Dynamodb,Joi,Vogels,我在dynamodb中有一个模式,如下所示,我使用的是Joi、Vogels和NodeJS 模式:{ 电子邮件:Joi.string().email(), 项:Joi.array().items(Joi.object().keys({ a:Vogels.types.uuid(), b:Joi.string(), c:Joi.string(), d:Joi.string().email() }))问题出在UUID字段(即属性“a”)上。我知道vogels应该自动生成UUID。但是,没有为非关键属性

我在dynamodb中有一个模式,如下所示,我使用的是Joi、Vogels和NodeJS

模式:{
电子邮件:Joi.string().email(),
项:Joi.array().items(Joi.object().keys({
a:Vogels.types.uuid(),
b:Joi.string(),
c:Joi.string(),
d:Joi.string().email()

}))
问题出在UUID字段(即属性“a”)上。我知道vogels应该自动生成UUID。但是,没有为非关键属性自动生成UUID值的工作示例,尽管根据它应该生成的文档。如果为关键属性定义UUID,应该可以

下面的解决方案是生成UUID并将值分配给属性“a”的一种变通方法

1)安装节点uuid模块

node install node-uuid
2)添加要求:-

var nodeUUID = require('node-uuid');
var Obj = {
    email : 'abc@b.com',
    item : [ {
        a : nodeUUID.v1(),
        b : 'data',
        c : 'some-data',
        d : 'b@c.com'
    } ]
};
3)按如下所述更改对象:-

var nodeUUID = require('node-uuid');
var Obj = {
    email : 'abc@b.com',
    item : [ {
        a : nodeUUID.v1(),
        b : 'data',
        c : 'some-data',
        d : 'b@c.com'
    } ]
};

您应该能够成功插入一个项目。我已经对它进行了测试,工作正常。

您在第一段代码中的架构末尾缺少一个括号。@PatrickMotard架构的代码只是用于表示目的