0

我知道 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);
4

1 回答 1

0

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

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

    check(obj, LogsSchema);

    Logs.insert(obj);
});

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

于 2018-03-20T14:46:59.127 回答