是否可以在Foxx模型中使用继承?

时间:2016-03-26 14:40:13

标签: arangodb foxx

我正在使用ArangoDB和Foxx开发REST API。不断回归多个模型的模式如下:

const NewAccount = Foxx.Model.extend({
schema: {
    name: Joi.string().required(),
    ... multiple properties
}});

当我将模型存储在数据库中时,我想添加创建时间戳,帐户状态等属性....

const Account = Foxx.Model.extend({
schema: {
    name: Joi.string().required(),
    ... multiple properties,
    created: Joi.number().integer().required().default(Date.now, 'Current date'),
    status: Joi.number().integer().required()
}});

问题: 有没有办法让帐户模型继承 NewAccount 模型中的所有属性,所以我只需要定义 created 状态属性?

其次,是否有一种高效且简单的方法将所有属性从 NewAccount 实例复制到帐户实例中?

1 个答案:

答案 0 :(得分:1)

没有直接支持通过继承扩展模式。但是,模式只是对象,因此您可以像任何其他对象一样扩展它们,例如使用_.extend

var _ = require('underscore');
var baseAccountSchema = {
  // ...
};
var extendedAccountSchema = _.extend({}, baseAccountSchema, {
  // ...
});
var NewAccount = Foxx.Model.extend({
  schema: baseAccountSchema
});
var Account = Foxx.Model.extend({
  schema: extendedAccountSchema
});