亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

orm2 中文文檔 3.2 模型驗(yàn)證器

zhiwei / 1421人閱讀

摘要:譯者飛龍來(lái)源模塊用于驗(yàn)證數(shù)據(jù)。可用的驗(yàn)證器的列表請(qǐng)見(jiàn)。驗(yàn)證器也構(gòu)建于中,可以這樣來(lái)訪問(wèn)你可以為模型的每個(gè)屬性定義驗(yàn)證器。在第一個(gè)驗(yàn)證器驗(yàn)證失敗之后,驗(yàn)證就停止了。

譯者:飛龍

來(lái)源:Model Validations

Enforce模塊用于驗(yàn)證數(shù)據(jù)。對(duì)于使用以前的驗(yàn)證器的用戶,還可以繼續(xù)使用,它們中的一部分整合到了enforce,剩余部分還沒(méi)有。推薦你開(kāi)始使用orm.enforce來(lái)取代orm.validators??捎玫尿?yàn)證器的列表請(qǐng)見(jiàn)node-enforce。

unique驗(yàn)證器也構(gòu)建于ORM中,可以這樣來(lái)訪問(wèn):

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)

你可以為模型的每個(gè)屬性定義驗(yàn)證器。對(duì)于每個(gè)屬性,你可以定義一個(gè)或多個(gè)驗(yàn)證器。你也可以使用預(yù)定義的驗(yàn)證器,或者自己新建。

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的長(zhǎng)度必須在1和undefined之間(undfined表示任意值),以及age必須在0和10(閉區(qū)間)之間,而且是列出的值之一。這個(gè)例子或許沒(méi)有意義,但是足夠解釋了。

保存一個(gè)對(duì)象的時(shí)候,如果由任何一個(gè)驗(yàn)證器驗(yàn)證失敗,你都會(huì)得到一個(gè)帶有屬性名稱和驗(yàn)證錯(cuò)誤描述的error對(duì)象。這個(gè)描述可以幫助你弄清楚發(fā)生了什么。

var John = new Person({
    name : "",
    age : 20
});
John.save(function (err) {
    // err.field = "name" , err.value = "" , err.msg = "missing"
});

在第一個(gè)驗(yàn)證器驗(yàn)證失敗之后,驗(yàn)證就停止了。如果你想要驗(yàn)證每個(gè)屬性并且返回所有驗(yàn)證錯(cuò)誤,你可以在全局或局部設(shè)置中更改這一行為:

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"
    });
});

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/17507.html

相關(guān)文章

  • orm2 中文文檔 3. 定義模型

    摘要:譯者飛龍來(lái)源在連接之后,你可以使用連接對(duì)象來(lái)定義你的模型。你需要指定模型的名稱,一個(gè)用于描述的屬性和一些可選的選項(xiàng)。在這個(gè)例子中,有個(gè)模型方法叫做。接收的第一個(gè)對(duì)象第二個(gè)參數(shù)被稱為屬性對(duì)象,它定義了所有的屬性。在屬性修改時(shí)自動(dòng)保存模型。 譯者:飛龍 來(lái)源:Defining Models 在連接之后,你可以使用連接對(duì)象(db)來(lái)定義你的模型。你需要指定模型的名稱,一個(gè)用于描述的屬性和...

    gnehc 評(píng)論0 收藏0
  • orm2 中文文檔

    摘要:譯者飛龍來(lái)源安裝所支持的版本支持。,和版本的測(cè)試在上運(yùn)行。如果你使用了,你可能想使用這一簡(jiǎn)單的中間件,使集成變得更容易。在多個(gè)連接之間定義的模型會(huì)在中連接。不要忘記在之前使用它,最好在你的公共素材文件夾之后。 譯者:飛龍 來(lái)源:Object Relational Mapping 安裝 npm install orm 所支持的Node.js版本 支持 0.8, 0.10, 0.12,...

    flybywind 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<