如何传递模式类型:对象的关键规则

How to pass schema type: Object's key rules

我正在尝试了解如何使用 Meteor-Collection2 验证对象。我可以在下面的代码中更好地解释:

// This is the object structure to validate
// const obj = {
//   name: 'Test',
//   active: true,
// }

Test.schemaObj = {
  someOtherName: {
    type: String, // Not the same as obj variable
  },
  testType: {
    type: Object,
    // The goal is to define rules for validation for 
    // things that this will contain.
  },
  // Inside the object: {
  //     type: String,
  //     required: true,
  //},
  // Inside the object: {
  //     type: Boolean,
  //     required: true,
  //},
};

我了解 required 在未定义时自动设置为 true。

我的目的是基本上列出对象必须具有的所有键及其验证规则。我知道对象数组是如何工作的,我只是不确定对象验证的语法是什么。

我浏览了文档和堆栈溢出,但无法在网上的任何地方找到明确显示语法的地方。

我确信我遗漏了一些基本的东西,但是,作为新手,我希望有人能帮助我。

我知道您想验证哪个 testType 对象。那么有两种方式:

  1. 您可以添加黑框:是的,这将允许该对象具有任何结构;

  2. 您需要定义每个 属性 对象,如下所示:

Test.schemaObj = {
  someOtherName: {
    type: String, // Not the same as obj variable
  },
  testType: {
    type: Object,
    // The goal is to define rules for validation for 
    // things that this will contain.
  },
  "testType.attribute1": {
       type: String,
       required: true,
  },
  "testType.attribute2": {
      type: Boolean,
      required: true,
  },
};