我試圖在Meteor方法中實現檢查,但面臨SimpleSchema包的一些奇怪的行爲(我使用最新的1.3.3在此刻);流星SimpleSchema不會拋出錯誤
從文檔:
呼叫mySimpleSchema.validate(DOC)來驗證架構文檔,如果無效拋出一個ValidationError。這就像check(doc,mySimpleSchema),但沒有檢查依賴關係,並且能夠將完整的模式錯誤細節傳遞迴客戶端的回調。
我定義一個簡單的模式是這樣的:
var mySchema = new SimpleSchema({ name: {type: String} });
var invalidDoc = { name: 123 };
然而MYSCHEMA對象不具有 「驗證」 的方法。我只能打電話確認使用
mySchema.namedContext().validate(invalidDoc);
該方法返回false,但沒有拋出任何異常。 到目前爲止,我發現的唯一方法是打電話給流星「檢查」功能,如下所示: check(invaidDoc, mySchema)
而且這的確按預期工作。所以,我的問題是:如何在Meteor方法上下文中執行對象檢查,而不使用check();
Meteor.methods({
'myMethod'(someObject) {
var schema = new SimpleSchema({
name: { type: String }
});
schema.namedContext().validate(someObject); //DOES NOT THROW!
console.log('This should not be here!');
}
});
非常感謝!我添加了「aldeed:simple-schema @ 1.4.0」,它就像一個魅力! –