ガイド リファレンス ソース
public class | ソース

VIRTUAL

拡張

src/data-types.js~ABSTRACT → VIRTUAL

DBに保存されない仮想値です。例えば、モデルでユーザーに返されるがDBには保存されないデフォルト値を提供したい場合に便利です。

また、値を変更して保存する前に検証するために使用することもできます。VIRTUALは、戻り値の型と依存フィールドも引数として取ります。仮想属性がattributesに存在する場合、追加のフィールドも自動的に取り込まれます。戻り値の型は、GraphQLのような型に依存する設定で特に役立ちます。

ハッシュ化する前のパスワード長の確認
sequelize.define('user', {
  password_hash: DataTypes.STRING,
  password: {
    type: DataTypes.VIRTUAL,
    set: function (val) {
       // Remember to set the data value, otherwise it won't be validated
       this.setDataValue('password', val);
       this.setDataValue('password_hash', this.salt + val);
     },
     validate: {
        isLongEnough: function (val) {
          if (val.length < 7) {
            throw new Error("Please choose a longer password")
         }
      }
    }
  }
})

# In the above code the password is stored plainly in the password field so it can be validated, but is never stored in the DB.
依存フィールドを持つ仮想
{
  active: {
    type: new DataTypes.VIRTUAL(DataTypes.BOOLEAN, ['createdAt']),
    get: function() {
      return this.get('createdAt') > Date.now() - (7 * 24 * 60 * 60 * 1000)
    }
  }
}

コンストラクタの概要

パブリックコンストラクタ
public

constructor(ReturnType: ABSTRACT, fields: 配列)

パブリックコンストラクタ

public constructor(ReturnType: ABSTRACT, fields: 配列) ソース

パラメータ

名前属性説明
ReturnType ABSTRACT
  • オプション

仮想型の戻り値の型

fields 配列
  • オプション

この仮想型が依存するフィールドの配列