2016-06-21 10 views
0

Ich benutze Sequelize, um Daten in einer Datenbank zu speichern und zu speichern.Wie man Datenmodell mit neuer Methode erweitert?

var sequelize = require('../database.js').sequelize, 
    Sequelize = require('../database.js').Sequelize; 

User = sequelize.define('user', { 
    authID:  Sequelize.STRING, 
    name:  Sequelize.STRING, 
}); 

User.prototype.createRider =() => { 
    console.log('test'); 
}; 

module.exports = User; 

Ich versuche, das Modell mit einer neuen Methode zu erweitern, um eine bestimmte Art von Benutzer zu speichern, aber User.prototype.createRider funktioniert nicht. Was kann getan werden?

Antwort

0

Es gibt eine „Erweiterung der Modelle“ in their documentation

Ich glaube, Sie die Class Objekt verwenden können

var Foo = sequelize.define('foo', { /* attributes */}, { 
classMethods: { 
    createRider: function(){ return 'smth' } 
    } 
}) 
0

Sie beide Instanz und Klasse definieren können Methoden auf dem Modell, während die definieren.

Ihre sequelize.define wie folgt ändern:

User = sequelize.define('user', { 
    authID:  Sequelize.STRING, 
    name:  Sequelize.STRING, 
}, classMethods: { 
    createRider: function() { 
     console.log('test'); 
    } 
}); 

Sie können dann die classMethods in der erwarteten Art und Weise verwenden:

User.createRider(); 

die Sequelize Dokumentation Siehe: Model Definition.

Verwandte Themen