2016-03-26 11 views
1

私はArangoDBとFoxxを使ってREST APIを開発しています。複数のモデルに戻ってくる続けるパターンは以下の通りです:私は、データベース内のモデルを保存するとき、私は作成タイムスタンプ、アカウントの状態、...のようにプロパティを追加したいFoxxモデルで継承を使用することは可能ですか?

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モデルからすべてのプロパティを継承するので、私は唯一の状態プロパティを作成した定義する必要がありますか?

第二に、アカウントインスタンスにNewAccountインスタンスからすべてのプロパティをコピーするための効率的かつ簡単な方法はありますか?

答えて

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 
}); 
関連する問題