Par exemple, j'ai un modèle client. Je veux ajouter une nouvelle fonction "sendEmail"
La fonction doit fonctionner envoyer un e-mail à un client ou envoyer un e-mail à plusieurs clients à la fois?
Où définir ces fonctions?
La version 4 de sequelize a changé cela et les autres solutions avec instanceMethods
et classMethods
ne fonctionnent plus. Voir Mise à niveau vers V4/Breaking changes
La nouvelle façon de procéder est la suivante:
const Model = sequelize.define('Model', {
...
});
// Class Method
Model.myCustomQuery = function (param, param2) { };
// Instance Method
Model.prototype.myCustomSetter = function (param, param2) { }
Utilisez instanceMethods
comme Jan Meier l'a souligné.
Dans votre échantillon client:
// models/Client.js
'use strict';
module.exports = function(sequelize, DataTypes) {
return sequelize.define('Client', {
first_name: DataTypes.STRING,
last_name: DataTypes.STRING,
}, {
instanceMethods: {
getFullName: function() {
return this.first_name + ' ' + this.last_name;
}
}
});
};