【问题标题】:Sequelize 4.0: Custom instanceMethods for all sequelize modelsSequelize 4.0:所有续集模型的自定义实例方法
【发布时间】:2017-12-06 15:33:09
【问题描述】:

我们如何创建自定义实例方法以供所有具有 sequelize 4.2 的模型应用/继承?在 sequelize 3 中,我们曾经在主模型的“定义”部分有一个“instanceMethods: {custom1: function (){} }”,该部分扩展到所有其他模型。我们如何使用 sequelize 4.0 实现相同的行为?

【问题讨论】:

  • 你能指出主要模型的东西是如何与续集
  • 嗨@Shivam,我们曾经有一个主“定义”对象,如下所示(示例取自 V3 文档的“应用程序范围模型选项”部分 [sequelize.readthedocs.io/en/v3/docs/getting-started] ->“Sequelize 构造函数采用一个定义选项,将用作所有已定义模型的默认选项。" { // don't add the timestamp attributes (updatedAt, createdAt) timestamps: false, // instance methods - inherited by all models instanceMethods: { _myCustomMethod: function () { // some process here ... } } }
  • 我们所有的模型都使用定义选项扩展了这个“基础”模型。现在在 sequelize 4.0 中,instanceMethods 直接在模型的原型上声明......当我们想要将自定义 instanceMethods 应用于(继承)我们的所有模型时,我们如何实现与 sequelize 3.0 相同的行为?感谢您的帮助

标签: sequelize.js


【解决方案1】:

现在可以独立于“定义”部分调用实例方法。我刚刚通过执行以下操作让我的 V4 工作:

const User = sequelize.define('users', {
 name: {type: Sequelize.TEXT}
});
User.prototype.custom1 = function() {
  //function
};

我仍然可以在导入用户模型的任何文件中调用实例方法。我希望这有帮助!这是我用来参考的文档:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-19
    • 2018-09-30
    • 2018-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-25
    • 1970-01-01
    相关资源
    最近更新 更多