Добавить данные в возвращаемое продолжение модели - PullRequest
1 голос
/ 03 октября 2019

У меня есть объект модели 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 для возвращаемого объекта?

...