У меня есть объект модели sequelize, который работает как ожидалось.
const part = sequalize.define("part", {
id: {type:Sequalize.INTEGER, primaryKey: true, autoIncrement: true},
part_number: {type : Sequalize.STRING(12), unique: true, allowNull: false},
description: {type : Sequalize.STRING(255), allowNull: false}, true}
})
Но я хочу запустить дополнительную функцию, когда эта модель вызывается, например, в запросе.
У меня есть эта функция сейчас:
part.prototype.getTotalStock = function () {
let _this = this;
return new Promise(function(resolve, reject) {
part.findOne({
where: {id: _this.id},
include: [{
model: sequalize.models.location,
}]
}).then(result => {
if (result) {
var totalStock = 0;
let stockOnLocation = result.dataValues.locations
stockOnLocation.forEach(function (entry) {
totalStock += entry.stock.amount
});
_this.setDataValue('totalStock', totalStock);
return resolve(_this)
} else {
return resolve(0)
}
}).catch(err => {
return reject(err)
});
})
}
Что я делаю, так это то, что я делаю запрос, поэтому у меня есть 1 объект части. После этого я могу вызвать:
queryResult.getTotalStock (). Then (result => {// данные здесь в результате})
Это работает, он получает запас, вычисляет его,и это добавляет данные к себе. Теперь мой вопрос, можно ли автоматически добавлять результат getTotalStock при использовании модели? Чтобы мне не нужно было вызывать getTotalStock для возвращаемого объекта?