I use Sequelize and in my User model have a hook and a prototype (see below). On the second line of the hook, I try to reference the prototype. But this doesn't work. It returns
this.getAllUsersInclMembersis not a function
How can I call upon the prototype from inside the hook?
module.exports = (sequelize) => {
User.afterUpdate(async (options) => {
// here I try to call upon the prototype for the instance
let users = await this.getAllUsersInclMembers();
await Promise.all(
await users.forEach(async (user) => {
// here we reference to a prototype in another model
user.syncToDb();
})
);
});
User.prototype.getAllUsersInclMembers = function {
return sequelize.models.Product.findAll({
where: { user_id: this.getDataValue("id") },
});
};
};
Update: I've updated the hook to the code below but still with the same result:
User.afterUpdate(async function (user, options) {
// here I try to call upon the prototype for the instance
let users = await this.getAllUsersInclMembers();
await Promise.all(
await users.forEach(async (user) => {
// here we reference to a prototype in another model
user.syncToDb();
})
);
});
I've solved it:
User.addHook("afterUpdate", async function (instance, options) {
let users = await instance.getAllUsersInclMembers();
await Promise.all(
await users.forEach(async (user) => {
// here we reference to a prototype in another model
user.syncToDb();
})
);
});