我有一个在Node.js应用程序中使用的外部库(Objection.js)。我创建了一个基础模型类,Model为我的实体模型扩展了Objection的类:
const { Model } = require('objection')
class ModelBase extends Model {
// implementation not important for this question
}
在扩展基础的模型类中,有时,尤其是在对进行编码时relationMappings,我必须访问Model基础类上的属性/枚举。我可以在这样的扩展模型中做到这一点:
const ModelBase = require('./model-base')
class SomeModel extends ModelBase {
static get relationMappings () {
const SomeOtherModel = require('./some-other-model')
return {
someOtherModel: {
relation: ModelBase.BelongsToOneRelation,
modelClass: SomeOtherModel,
// etc.
}
}
}
}
注意这一relation: ModelBase.BelongsToOneRelation行。这行得通,但我认为这具有误导性,因为BelongsToOneRelation它不是的成员ModelBase。在我看来,更明确,更正确的方法是Model从Objection导入/请求from,以便我可以BelongsToOneRelation从那里访问该对象,例如:
const { Model } = require('objection')
// other code just like above until the relationMappings...
relation: Model.BelongsToOneRelation
我更喜欢这种方法。如果导入/需要继承链中已经存在的类,是否会引起问题,例如require循环或循环依赖的JavaScript版本?
RISEBY
白猪掌柜的
相关分类