如何使用新方法扩展数据模型?

时间:2016-06-21 12:04:55

标签: node.js sequelize.js

我使用Sequelize存储数据并将其保存到数据库中。

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;

我尝试使用新方法扩展模型以存储特定类型的用户,但User.prototype.createRider无法正常工作。可以做些什么?

2 个答案:

答案 0 :(得分:0)

有一个"扩展模型" their documentation

中的部分

我相信你可以使用classMethods对象

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

答案 1 :(得分:0)

您可以在定义期间在模型上定义实例和类方法。

按如下方式更改sequelize.define

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

然后,您可以按预期方式使用classMethods

User.createRider();

请参阅Sequelize文档:Model Definition