keystonejs 模式函数作为 public 函数

keystonejs schema function as public function

想使用 public 模式功能但不知道如何实现, 这是我的例子:

var Token = new keystone.List('Token', {});

Token.add({
    uuid: { type: String, index: true },
    state: { type: Types.Select, options: 'created, used', default: 'created' },
    endDate: { type: Types.Date },
    user: { type: Types.Relationship, ref: 'User' },
    url: { type: String }
});

Token.schema.methods.getUrl = function () { /*DO something*/ }

比起我尝试在我的模块中调用 getUrl

var Token = modelUtils.promisifyModel(keystone.list('Token').model);
Token.getUrl();

然后我得到一个错误:Token.schema.methods 不是一个函数

很抱歉,modelUtils 是令牌对象的包装器,请返回一些 属性 包装器对象。我懒得检查整个代码(不是我的代码),但是如果我发现关于 modelUtils 的问题,我意识到这是扩展包装器 class 的关键. 我真的很抱歉,也为我的懒惰感到有点羞愧。