サーチ…


備考

Sailsには、1つまたは複数のデータベースとのやりとりを劇的に簡素化するデータストアに不可欠なツールである、Waterlineという強力なORM / ODMがインストールされています。基盤となるデータベースの上に抽象レイヤーを提供し、ベンダー固有の統合コードを記述しなくてもデータを簡単に照会して操作することができます。

基本モデル

この例は、Sails.jsで単純なモデルを定義する方法を示しています

空のモデルファイルを生成するには、次のように入力します。

sails generate model car

新しいファイルCar.jsapi/models/ます。

次に、いくつかの詳細を記入します。

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']
    }

  }

};

上記の例では、ほぼすべてのモデルオプションを使用しています。これについては後述します。

1. tableName

このパラメータは、データベースに作成されるテーブルの名前を定義します。定義されていない場合、モデル名が使用されます(この例ではcar )。

2.接続

これは、モデルに使用されるデータベース接続を定義します。その接続の詳細はconfig/connections.js内のmongodbキーで定義されて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.属性

各属性は、モデルのデータベース表の列を参照します。この例では、9つの列が作成されます。各列は、次の1つ以上のキーで構成できます。

  • type :列のデータ型。 このページには、使用可能なすべてのタイプが一覧表示されます。
  • unique :trueの場合、この列の値がデータベースにすでに存在するオブジェクトと同じ値を持つオブジェクトを作成しようとすると、エラーが発生します。
  • primaryKey :trueの場合、列は主キーとして機能します。
  • autoIncrement :シーケンスは、0から始まる自動インクリメント可能な数値を持つ列に関連付けられます。
  • size :列の最大長。
  • required :trueの場合、nullにすることはできません。
  • columnName :データベースの列を構成します。デフォルトは属性名です。
  • enum :属性に対して可能なオプションの配列を設定できます。


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow