摘要:譯者飛龍來源模塊用于驗證數(shù)據(jù)。可用的驗證器的列表請見。驗證器也構建于中,可以這樣來訪問你可以為模型的每個屬性定義驗證器。在第一個驗證器驗證失敗之后,驗證就停止了。
譯者:飛龍
來源:Model Validations
Enforce模塊用于驗證數(shù)據(jù)。對于使用以前的驗證器的用戶,還可以繼續(xù)使用,它們中的一部分整合到了enforce,剩余部分還沒有。推薦你開始使用orm.enforce來取代orm.validators。可用的驗證器的列表請見node-enforce。
unique驗證器也構建于ORM中,可以這樣來訪問:
name: orm.enforce.unique("name already taken!") name: orm.enforce.unique({ scope: ["age"] }, "Sorry, name already taken for this age group") name: orm.enforce.unique({ ignoreCase: true }) // "John" is same as "john" (mysql is case insensitive by default)
你可以為模型的每個屬性定義驗證器。對于每個屬性,你可以定義一個或多個驗證器。你也可以使用預定義的驗證器,或者自己新建。
var Person = db.define("person", { name : String, age : Number }, { validations : { name : orm.enforce.ranges.length(1, undefined, "missing"), // "missing" is a name given to this validation, instead of default age : [ orm.enforce.ranges.number(0, 10), orm.enforce.lists.inside([ 1, 3, 5, 7, 9 ]) ] } });
上面的代碼限定了name的長度必須在1和undefined之間(undfined表示任意值),以及age必須在0和10(閉區(qū)間)之間,而且是列出的值之一。這個例子或許沒有意義,但是足夠解釋了。
保存一個對象的時候,如果由任何一個驗證器驗證失敗,你都會得到一個帶有屬性名稱和驗證錯誤描述的error對象。這個描述可以幫助你弄清楚發(fā)生了什么。
var John = new Person({ name : "", age : 20 }); John.save(function (err) { // err.field = "name" , err.value = "" , err.msg = "missing" });
在第一個驗證器驗證失敗之后,驗證就停止了。如果你想要驗證每個屬性并且返回所有驗證錯誤,你可以在全局或局部設置中更改這一行為:
var orm = require("orm"); orm.settings.set("instance.returnAllErrors", true); // global or.. orm.connect("....", function (err, db) { db.settings.set("instance.returnAllErrors", true); // .. local // ... var John = new Person({ name : "", age : 15 }); John.save(function (err) { assert(Array.isArray(err)); // err[0].property = "name" , err[0].value = "" , err[0].msg = "missing" // err[1].property = "age" , err[1].value = 15 , err[1].msg = "out-of-range-number" // err[2].property = "age" , err[2].value = 15 , err[2].msg = "outside-list" }); });
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/17507.html
摘要:譯者飛龍來源在連接之后,你可以使用連接對象來定義你的模型。你需要指定模型的名稱,一個用于描述的屬性和一些可選的選項。在這個例子中,有個模型方法叫做。接收的第一個對象第二個參數(shù)被稱為屬性對象,它定義了所有的屬性。在屬性修改時自動保存模型。 譯者:飛龍 來源:Defining Models 在連接之后,你可以使用連接對象(db)來定義你的模型。你需要指定模型的名稱,一個用于描述的屬性和...
閱讀 1508·2023-04-26 00:25
閱讀 906·2021-09-27 13:36
閱讀 930·2019-08-30 14:14
閱讀 2172·2019-08-29 17:10
閱讀 1006·2019-08-29 15:09
閱讀 1942·2019-08-28 18:21
閱讀 962·2019-08-26 13:27
閱讀 971·2019-08-26 10:58