成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

orm2 中文文檔

flybywind / 2811人閱讀

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

譯者:飛龍

來源:Object Relational Mapping

安裝
npm install orm
所支持的Node.js版本

支持 0.8, 0.10, 0.12, iojs-1.5 。

0.10.x,0.12.xiojs-1.5 版本的測試在 Travis CI 上運(yùn)行。如果你想要的話,可以在本地運(yùn)行測試:

npm test
DBMS 支持

MySQL & MariaDB

PostgreSQL

Amazon Redshift

SQLite

MongoDB (beta版,到現(xiàn)在為止缺少聚合)

特性

創(chuàng)建模型,同步,刪除,批量創(chuàng)建,獲取,查找,移除,計(jì)數(shù),聚合函數(shù)

創(chuàng)建模型的關(guān)聯(lián),查找,檢查,創(chuàng)建和移除

定義自定義的驗(yàn)證器(有一些內(nèi)建的驗(yàn)證器,會(huì)在保存之前檢查實(shí)例的屬性 -- 詳見enforce

模型實(shí)例的緩存和一致性(兩次獲取表中的一行,獲取到相同的對(duì)象,修改其中一個(gè)就是修改全部)

插件:MySQL FTS,Pagination (分頁),Transaction (事務(wù)),Timestamps (時(shí)間戳),Migrations (遷移)

介紹

這是一個(gè) Node.js 對(duì)象關(guān)系映射模塊。

示例:

var orm = require("orm");

orm.connect("mysql://username:password@host/database", function (err, db) {
  if (err) throw err;

    var Person = db.define("person", {
        name      : String,
        surname   : String,
        age       : Number, // FLOAT
        male      : Boolean,
        continent : [ "Europe", "America", "Asia", "Africa", "Australia", "Antartica" ], // ENUM type
        photo     : Buffer, // BLOB/BINARY
        data      : Object // JSON encoded
    }, {
        methods: {
            fullName: function () {
                return this.name + " " + this.surname;
            }
        },
        validations: {
            age: orm.enforce.ranges.number(18, undefined, "under-age")
        }
    });

    // add the table to the database
    db.sync(function(err) { 
        if (err) throw err;

        // add a row to the person table
        Person.create({ id: 1, name: "John", surname: "Doe", age: 27 }, function(err) {
            if (err) throw err;

                // query the person table by surname
                Person.find({ surname: "Doe" }, function (err, people) {
                    // SQL: "SELECT * FROM person WHERE surname = "Doe""
                    if (err) throw err;

                    console.log("People found: %d", people.length);
                    console.log("First person: %s, age %d", people[0].fullName(), people[0].age);

                    people[0].age = 16;
                    people[0].save(function (err) {
                        // err.msg = "under-age";
                });
            });

        });
    });
});
Promise

你可以使用開啟Promise的包裝庫。

Express

如果你使用了Express,你可能想使用這一簡單的中間件,使集成變得更容易。

var express = require("express");
var orm = require("orm");
var app = express();

app.use(orm.express("mysql://username:password@host/database", {
    define: function (db, models, next) {
        models.person = db.define("person", { ... });
        next();
    }
}));
app.listen(80);

app.get("/", function (req, res) {
    // req.models is a reference to models used above in define()
    req.models.person.find(...);
});

你可以多次調(diào)用orm.express來獲取多個(gè)數(shù)據(jù)庫的連接。在多個(gè)連接之間定義的模型會(huì)在req.models中連接。不要忘記在app.use(app.router)之前使用它,最好在你的公共素材文件夾之后。

示例

請(qǐng)見examples/anontxt,里面有一個(gè)基于express的應(yīng)用示例。

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

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

相關(guān)文章

  • AI開發(fā)書籍分享

    摘要:編程書籍的整理和收集最近一直在學(xué)習(xí)深度學(xué)習(xí)和機(jī)器學(xué)習(xí)的東西,發(fā)現(xiàn)深入地去學(xué)習(xí)就需要不斷的去提高自己算法和高數(shù)的能力然后也找了很多的書和文章,隨著不斷的學(xué)習(xí),也整理了下自己的學(xué)習(xí)筆記準(zhǔn)備分享出來給大家后續(xù)的文章和總結(jié)會(huì)繼續(xù)分享,先分享一部分的 編程書籍的整理和收集 最近一直在學(xué)習(xí)deep learning深度學(xué)習(xí)和機(jī)器學(xué)習(xí)的東西,發(fā)現(xiàn)深入地去學(xué)習(xí)就需要不斷的去提高自己算法和高數(shù)的能力然后...

    huayeluoliuhen 評(píng)論0 收藏0
  • orm2 中文文檔 8. 聚合

    摘要:譯者飛龍來源如果你需要從一個(gè)模型中獲取一些聚合值,你可以使用。下面通過一個(gè)例子來展示可以傳遞一個(gè)含有屬性的來選擇僅僅保留一小部分屬性。方法也會(huì)接收一個(gè)來定義條件。 譯者:飛龍 來源:Aggregation 如果你需要從一個(gè)模型中獲取一些聚合值,你可以使用Model.aggregate()。下面通過一個(gè)例子來展示: Person.aggregate({ surname: Doe })...

    simpleapples 評(píng)論0 收藏0
  • orm2 中文文檔 1. 連接到數(shù)據(jù)庫

    摘要:回調(diào)函數(shù)只在連接建立成功或失敗時(shí)調(diào)用。如果你愿意的話,可以不傳入回調(diào)函數(shù),而是監(jiān)聽事件。問題排除如果你在連接數(shù)據(jù)庫的時(shí)候遇到了如下錯(cuò)誤你可以嘗試添加參數(shù) 譯者:飛龍 來源:Connecting to Database 在連接之前,你需要一個(gè)受支持的驅(qū)動(dòng)。下面是一些測試過的驅(qū)動(dòng)及其版本,把你所需要的加入到package.json中。 驅(qū)動(dòng) npm 包 版本 mysql my...

    soasme 評(píng)論0 收藏0
  • orm2 中文文檔 2. 設(shè)置

    摘要:譯者飛龍來源設(shè)置用于儲(chǔ)存鍵值對(duì)。設(shè)置對(duì)象是默認(rèn)值上的實(shí)例,之后會(huì)為每個(gè)連接和每個(gè)定義過的建立快照。 譯者:飛龍 來源:Settings 設(shè)置用于儲(chǔ)存鍵值對(duì)。設(shè)置對(duì)象是orm(默認(rèn)值)上的實(shí)例,之后會(huì)為每個(gè)db連接和每個(gè)定義過的Model建立快照。所以orm.settings上的更改只會(huì)作用于更改之后建立的連接,而db.settings會(huì)作用于更改之后定義的模型。 var orm =...

    shiguibiao 評(píng)論0 收藏0
  • orm2 中文文檔 3. 定義模型

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

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

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

0條評(píng)論

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