如何将自定义函数添加到Node.JS中的sequelize.js?
例如,我有一个客户端模型。 我想添加新的function“sendEmail”
该function需要工作发送电子邮件给一个客户端,或一次发送电子邮件给许多客户端?
在哪里定义这些function?
像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; } } }); };
续集版本4改变了这一点,其他解决scheme与instanceMethods
和classMethods
不再工作。 请参阅升级到V4 /中断更改
新的做法如下:
const Model = sequelize.define('Model', { ... }); // Class Method Model.myCustomQuery = function (param, param2) { }; // Instance Method Model.prototype.myCustomSetter = function (param, param2) { }
我有同样的问题,对我来说,它在classMethods
对象中添加方法
// models/Client.js 'use strict'; module.exports = function(sequelize, DataTypes) { return sequelize.define('Client', { first_name: DataTypes.STRING, last_name: DataTypes.STRING, }, { classMethods: { getFullName: function() { return this.first_name + ' ' + this.last_name; } } }); };