如何在Node.JS中为sequelize.js添加自定义函数?

Ami*_*ein 15 node.js sequelize.js

例如,我有一个客户端模型.我想添加新功能"sendEmail"

该功能需要工作,向一个客户端发送电子邮件,或者一次向多个客户端发送电子邮件?

在哪里定义这些功能?

jlh*_*jlh 58

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) {  }
Run Code Online (Sandbox Code Playgroud)

  • 这个答案应该被接受,因为它是添加类方法和实例方法的新方法. (2认同)

Ber*_*nde 10

使用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;
      }
    }
  });
};
Run Code Online (Sandbox Code Playgroud)