【问题标题】:Collection Insert within Collection-Hook bypasses SimpleSchemaCollection-Hook 中的 Collection Insert 绕过 SimpleSchema
【发布时间】:2018-03-20 22:46:59
【问题描述】:

我知道 Collection-Hooks 与 SimpleSchema 不能很好地配合使用存在问题。问题似乎是 SimpleSchema 在 Collection-Hooks 之前运行。

但在下面的示例中,我将一个文档插入到一个完全不同的集合中,它似乎完全绕过了 SimpleSchema。这对我来说有点令人惊讶,因为我认为由于 Logs 是一个不同的集合,它仍然会触发它自己的 SimpleSchema ......但它不是我在这里所做的方式。

是否有人知道允许 Logs 在此示例中使用其 SimpleSchema 的解决方法?

Products = new Mongo.Collection('products');

Products.after.insert((userId, doc) => {
    Logs.insert({'someinvalid': 'schema'});
    // logs still gets inserted here even though it's schema should be invalid
});

Logs = new Mongo.Collection('logs');

LogsSchema = new SimpleSchema({
    'someSchema': {
        type: String
    }
});

Logs.attachSchema(LogsSchema);

【问题讨论】:

    标签: meteor simple-schema meteor-collection-hooks


    【解决方案1】:

    我自己想出来的。我需要做的就是应用检查包并使用:

    Products.after.insert((userId, doc) => {
        let obj = {'someinvalid': 'schema'};
    
        check(obj, LogsSchema);
    
        Logs.insert(obj);
    });
    

    我忘了你可以使用 SimpleSchema 作为集合本身之外的验证检查 ^^;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-20
      • 1970-01-01
      • 2017-05-22
      • 2011-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多