文章出處

回到目錄

上一講說了在sails里定義model及相關參數的說明,這一講主要說一下如何將你的Model持久化到文件,關系數據庫和Nosql數據庫里,在持久化這點上,sails是統一管理的,它可以在/config/model.js里設置全局的持久化方法,而且它還可以進行多種介質持久化的并存,如你想讓mysql和mongodb并存,只要在指定的/model/實體.js類中,進行設置即可,如下面代碼將actionjob這個表持久化到mongodb里

//actionJob.js
module.exports={ connection:"someMongodbServer", //持久化到mongodb里 attributes:{ content: { type: 'string', size: 255 }, userId:{ type:'integer' } } };

對于數據的持久化主要分為以下幾個步驟,下面一一講解

1 安裝缺失的驅動,默認來說mongodb和sqlserver都需要進行安裝,npm install 命令

在命令提示窗口輸入下面命令進行安裝

npm install sails-mongodb
npm install sails-sqlserver

2 添加數據庫連接信息/config/connection.js,下面以mongodb和sqlserver為例

someMongodbServer: {
        adapter: 'sails-mongo',
        host: '192.168.2.21',
        port: 27017,
        // user: 'username',
        // password: 'password',
        database: 'TestNodeJs'
    },  
 someSqlServer: {
        adapter: 'sails-sqlserver',
        host: '192.168.2.71',
        user: 'sa',
        password: 'zzl123',
        database: 'TestNodeJs'
    }

3 設置model所使用哪種數據庫進行持久化/config/model.js

module.exports.models = {

  /***************************************************************************
  *                                                                          *
  * Your app's default connection. i.e. the name of one of your app's        *
  * connections (see `config/connections.js`)                                *
  *                                                                          *
  ***************************************************************************/
 //connection: 'localDiskDb',
connection: 'someSqlServer',
// connection: 'someMongodbServer',
  /***************************************************************************
  *                                                                          *
  * How and whether Sails will attempt to automatically rebuild the          *
  * tables/collections/etc. in your schema.                                  *
  *                                                                          *
  * See http://sailsjs.org/#!/documentation/concepts/ORM/model-settings.html  *
  *                                                                          *
  ***************************************************************************/
  migrate: 'alter'//自動合并,不清除原來的數據
};

下面對migrate進行一些說明:

  1. safe - never auto-migrate my database(s). I will do it myself (by hand)[不自動合并數據,需要手動控制]
  2. alter - auto-migrate, but attempt to keep my existing data (experimental)[與老數據自動合并,當添加新字段后,數據表才會被刪除,推薦使用]
  3. drop - wipe/drop ALL my data and rebuild models every time I lift Sails[刪除數據表,建立新表,插入新數據]

通過上面的設置之后,運行你的app.js,如果沒有出現錯誤,說明你的數據就可以持久化了,呵呵!

小知識:

Mongodb它對自動創建數據庫和數據表

Sqlserver它需要手動選建立數據庫,數據表自動建立

注意:

你的項目在進行github之后,一般情況下node_modules文件夾不會被管理,即你下載的npm包包沒有被管理,這時在異地從github上下載源碼后,可以在命令行上輸入npm install命令,自動讓npm根據你的package.json文件下載所需要的包包!

回到目錄


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()