必须使用类型函数错误指定字段 - Keystone

时间:2017-04-05 20:27:19

标签: mongoose keystonejs

我想在KeyStone中实现的目标

  1. 我有labConfigs表,如下所示。对于每个LabConfigs表项,我想在Domain表中存储“UserauthLevel”。

    所以我想在域表中创建“布尔对象数组”。 下面是相同的代码。

        ****************LabConfigs***********************
        var LabConfigs = new keystone.List('LabConfigs');
    
        LabConfigs.add({
         configName: {type: Types.Text, required: true, initial: true, index: true},
         description: {type: Types.Text, required: true, initial: true, index: true},
         image: {type: Types.Text, required: true, initial: true, index: true},
         type: {type: Types.Text, required: true, initial: true, index: true},
         version: {type: Types.Text, required: true, initial: true, index: true},
        });
        ************************************************
    

    以下是我的域表代码: -

        **************************Domain table******
    
         var Domain = new keystone.List('Domain');
         Domain.add({
          domainName: {type: Types.Text, required: true, initial: true, index: true},
         labConfigs :{type: Types.Relationship, ref: 'LabConfigs',required: false,many: true},
         userauthlevel:[{ type: Types.Boolean}]
         });
        Domain.defaultColumns = 'domainName';
        Domain.register();
    

    但是在跑完这个投掷之后它给了我错误: -

       throw new Error('Fields must be specified with a type function');
        ^
    

    为了解决这个问题,我试着在域表中使用代码

        Domain.schema.add ({
               userauthlevel :
                          [{
                          type: Types.Text
                         }]
             });
    

    但这也无济于事。

    如何解决这个问题的任何建议我知道它可能在mongoose中起作用。

1 个答案:

答案 0 :(得分:1)

您错误地为Types.TextArray媒体资源指定了一系列布尔值。 Keystone没有布尔数组类型,但它有userauthlevel: { types: Types.TextArray } 可用于在文档上存储多个可能的布尔值。

VBoxManage startvm "my_vm"
#when my_vm closes
do_things

您传递给它的任何数组都被视为一个字符串数组,因此您必须自己将任何存储的值转换为正确的true / false值。