たとえば、クライアントモデルがあります。新機能「sendEmail」を追加したい
関数は、1つのクライアントにメールを送信するために機能する必要があるか、一度に多くのクライアントにメールを送信するために必要ですか?
それらの関数をどこで定義するのですか?
Sequelizeのバージョン4はこれを変更し、instanceMethods
およびclassMethods
を使用する他のソリューションは動作しなくなりました。参照 V4へのアップグレード/重大な変更
新しい方法は次のとおりです。
const Model = sequelize.define('Model', {
...
});
// Class Method
Model.myCustomQuery = function (param, param2) { };
// Instance Method
Model.prototype.myCustomSetter = function (param, param2) { }
Jan Meier が指摘するようにinstanceMethods
を使用します。
クライアントサンプル:
// 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;
}
}
});
};