簡體   English   中英

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

[英]Is it possible to use inheritance in Foxx models?

我正在使用 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()
}});

問題:有沒有辦法讓Account模型繼承NewAccount模型的所有屬性,這樣我只需要定義createdstatus屬性?

其次,是否有一種有效且簡單的方法可以將NewAccount實例中的所有屬性復制到Account實例中?

沒有直接支持通過繼承擴展模式。 然而模式只是對象,所以你可以像任何其他對象一樣擴展它們,例如使用_.extend

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM