2014-06-11 37 views
0

我正在使用ExpressJS構建的NodeJS應用程序與JaySchema(https://github.com/natesilva/jayschema)玩耍。我想知道是否有人已經創建,或者知道如何,創建ammends庫,讓「嚴」驗證自定義代碼......通過「嚴格」,我的意思是不屬於架構內的任何JSON性質本身返回模式驗證的錯誤狀態。JaySchema的嚴格模式驗證

如果有人對此有所瞭解,我很樂意聽取您的意見。另外,如果有人知道提供此選項的替代庫(最好可用NPM),請告訴我。

謝謝!

回答

1

所以有點挖後,我想出瞭解決方案。

JaySchema支持JSON Schema的標準(關於JSON Schema Standards Docs的詳細信息發現爲here)。在這些標準中,「additionalProperties」關鍵字被定義爲我正在尋找的(更多信息請見here)。

根據文檔(特別是第5.4.4.4節和5.4.4.5中的示例),如果「additionalProperties」設置爲布爾值false,那麼如果找到超出架構中定義的屬性,則驗證將失敗。因爲,正如我上面提到的,JaySchema支持這個JSON模式標準,如果您在對象級別添加「additionalProperties」爲false,您將實現我正在尋找的「嚴格」驗證。

如果你有興趣,你可以檢查出的測試中,我最多在GitHub上下面:

schema:用「additionalProperty」設置爲false

test:有一個附加屬性添加到導致驗證失敗