2015-12-21 92 views
0

我試圖在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!'); 
    } 
}); 

回答

0

SimpleSchema軟件包的此功能has apparently been added in version 1.4.0,因此在v1.3.3中尚不可用。我想你將不得不使用check(),直到1.4.0的氣氛!

+0

非常感謝!我添加了「aldeed:simple-schema @ 1.4.0」,它就像一個魅力! –