Waterline ORM 是否支持继承?比如说,我有一个名为 BusinessDocument 的模型,我想创建一个名为 SalesOrder 的新模型,它扩展了 BusinessDocument 。因此,SalesOrder 最终应该具有 BusinessDocument 的所有属性以及一些新属性。这是 Waterline 支持的吗?

最佳答案

Waterline 似乎不支持开箱即用。看到这个 GitHub issue

上述问题中的评论之一还链接到 YouTube ( here ) 上的sailscast 视频。简而言之,该视频演示了如何使用 lodash 将子模型与基础模型进行 merge,如下所示:

基础模型.js

module.exports = {
  attributes : {
    name : 'STRING',
    age  : 'INTEGER'
  },
  foo : function () {}
}

子模型.js
var baseModel = require('/path/to/baseModel')
  , _ = require('lodash')

module.exports = _.merge(baseModel, {
  attributes : {
    birthDate : 'DATE',
    ...
  }
})

10-07 21:11