У меня есть следующее определение модели, созданное для sequelize.js:
const Item = sequelize.define('item', {
id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true
},
lender: {
type: Sequelize.STRING,
allowNull: false,
defaultValue() {
return this.getDataValue('owner');
}
},
owner: {
type: Sequelize.STRING,
allowNull: false,
},
},
{
tableName: 'items',
underscored: true,
updatedAt: false,
createdAt: 'timestamp'
}
);
Мое намерение состоит в том, что, если поле кредитора lender
не предоставлено, тогда оно установлено в поле owner
.
Когда я запускаю свой модульный тест, я получаю результат TypeError: this.getDataValue() is not a function
.
В документации приведен пример defaultValue
, являющегося функцией. Что я тут не так делаю?
Я использую sequelize 4.37 и PostgreSQL