基本模型

此示例顯示如何在 Sails.js 中定義簡單模型

你可以通過鍵入生成空模型檔案

sails generate model car

你會在 api/models/找到新檔案 Car.js

接下來,你將填寫一些詳細資訊。

modules.exports = {

  tableName : 'cars',
  connection : 'mongodb',

  attributes : {

    id : { 
      type : 'integer', 
      unique : true, 
      primaryKey : true, 
      autoIncrement : true
    },

    brand : {
      type : 'string',
      size : 25
    },

    description : { 
      type: 'text', 
      defaultsTo : ''
    },
    
    price : {
      type : 'float',
      required : true
    },
                  
    seats : {
      type : 'integer'
    },
        
    sell_date : {
      type : 'datetime'
    },
        
    has_cooler : { 
      type : 'boolean',
      columnName : 'cooler'
    },
                       
    chassis_number : {
      unique : true,
      type : 'string'
    },

    color : {
      type : 'string',
      enum: ['white', 'red', 'black']
    }

  }

};

上面的示例幾乎使用了所有可能的模型選項,如下所述。

tableName

此引數定義將在資料庫中建立的表的名稱。如果未定義,將使用模型名稱(在此示例中為 car)。

2.連線

此特定定義用於模型的資料庫連線。該連線的詳細資訊在 config/connections.js 內的 mongodb 鍵下定義。這是連線的格式:

mongodb : {

  // The driver that connect our models with the database
  adapter : '<adapter>',

  // The database parameters
  user : '<username>',
  port : <port>,
  host : '<host>',
  database : '<database>'

}

3.屬性

每個屬性都引用模型的資料庫表中的列。在此示例中,將建立九列。每列可以配置一個或多個以下鍵:

  • type :列的資料型別。此頁面列出了所有可用的型別。
  • unique :如果為 true,則嘗試建立與此列中的值相同的物件時,將發生錯誤。
  • primaryKey :如果為 true,則列將作為主鍵。
  • autoIncrement :序列將與列關聯,並且自動可遞增數字從 0 開始。
  • size :列的最大長度。
  • required :如果為 true,則不能為 null。
  • columnName :這將配置資料庫中的列,預設為屬性名稱。
  • 列舉 :我們可以為屬性設定一組可能的選項。