Sequelize classMethods vs instanceMethods Sequelize classMethods vs instanceMethods javascript javascript

Sequelize classMethods vs instanceMethods


All the method who don't modify or check any type of instance should be classMethod and the rest instanceMethod

ex:

// Should be a classMethodsfunction getMyFriends() {  return this.find({where{...}})}// Should be a instanceMethodsfunction checkMyName() {  return this.name === "george";}


Although the basics are that instance methods should be used when you want to modify your instance ( ergo row ). I would rather not pollute the classMethods with methods that don't use the class ( ergo the table ) itself.

In your example I would put hashPassword function outside your class and leave it as a helper function somewhere in my utilities module ( or why not the same module but as a normal defined function ) ... like

var hashPassword = function(...) { ... }......  instanceMethods: {      authenticate: function( ... ) { hashPassword( ... ) }  }


I found this worked for me as of sequelize 3.14

var myModel = sequelize.define('model', {}, {  classMethods: {    someClassMethod: function() {      return true;    }}, {  instanceMethods: {    callClassMethod: function() {      myModel.someClassMethod();    }  }});