[英]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模型的所有屬性,這樣我只需要定義created和status屬性?
其次,是否有一種有效且簡單的方法可以將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.