3

如何获取我在集合或方法的失败插入中引发的错误的值。

Customers.allow({
insert: function(userID, rec) {
    console.log(userID === rec.userID);

    if (rec.userID === null) {
        throw new Meteor.Error(600, "You must be logged in");
    };

    if (rec.phone.length != 10 ) {
        throw new Meteor.Error(601, "Incorect phone format", "Phone must be 10 chars long");
    };

    if (rec.fax.length != 10 ) {
        throw new Meteor.Error(602, "Incorect fax format", "Fax must be 10 chars long");
    };

    return userID === rec.userID;
}

});

所以现在我在控制台上看到了错误,但是说如果想要在模板中显示错误或将其存储在反应会话中,以便可以显示给用户进行更正。

喜欢尝试这样的事情。

Template.form.errors = function () {
   // return however you get to those thrown errors
}
4

1 回答 1

2

今天刚刚发布了一个包来帮助解决这个问题:https ://github.com/tmeasday/meteor-errors

你需要陨石才能使用它:https ://github.com/oortcloud/meteorite

添加带有陨石的包:

mrt add errors

(不用担心,除了命令之外,您不会向流星添加错误;)

然后,您可以在客户端 js 中抛出错误:

Meteor.Errors.throw("Error details");

然后,在您的 HTML 中,无论您想在哪里显示错误:

{{>meteorErrors}}
于 2013-04-10T21:07:59.913 回答