Loopback - 扩展内置模型的最简单方法

Posted

技术标签:

【中文标题】Loopback - 扩展内置模型的最简单方法【英文标题】:Loopback - Easiest way to extend a built-in model 【发布时间】:2015-04-08 12:03:25 【问题描述】:

我一直在使用 Loopback 创建 API。该文档通常非常好,但并没有真正回答我关于以下问题的问题:我如何扩展(而不是替换)内置模型?

最有希望的信息来自this page - 它指定了通过继承从另一个类建立一个类的方式。这很有用但并不理想 - 例如,我想从库存模型创建与自定义模型的关系 - “角色”应该有很多“权限”。

我提到的页面还显示了一个位于 common/models/<modelName>.jsjavascript 文件,其中声明您可以根据您提供的属性和选项“扩展”模型。服务器似乎从来没有命中文件...例如 - 我在common/models/role.js 中放置了一个文件,内容如下:

var properties = 
  exampleProperty: type: String, required: true
;


var user = loopback.Model.extend('Role', properties);
console.log('test');

首先,它似乎根本没有命中文件(没有给出console.log 输出)。其次,显然是因为第一点,它没有用我创建的属性扩展模型。

是我遗漏了一些明显的东西还是文档完全错误?

【问题讨论】:

这里有同样的问题。在解释如何扩展内置模型时,文档似乎相当不完整 - 他们似乎建议你可以扩展,但像你一样,我发现使用例如 user.json/.js 不是一个选项。你有没有按照这里的建议尝试继承?我担心它会破坏访问令牌或通常会导致更多问题。 您好,继承是要走的路。如果您扩展基本 User 类,您将收到相同的方法,并且它也会以某种方式为您计算出 accessToken 的东西。 【参考方案1】:

您应该通过slc loopback:model 生成一个名为user 的新模型。默认情况下,内置用户名为User,这就是为什么您可以使用小写的user,如果您愿意,甚至可以使用UserModel。然后,当模型生成器提示您输入基本模型时,选择User。见https://github.com/strongloop/loopback-faq-user-management/blob/master/common/models/user.json#L3

【讨论】:

谢谢,我猜文档有点误导。我想为原始模型添加新的属性和关系,但我想这不是最好的方法。 是的,扩展内置模型,然后添加你的属性和关系绝对是要走的路。

以上是关于Loopback - 扩展内置模型的最简单方法的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 上扩展 OpenCV 1.1 中的 GUI 功能的最简单方法?

Loopback 相关的模型属性问题

从 HtmlHelper 的扩展方法中传递的 lambda 表达式中获取属性值的最简单方法是啥?

使用 Django/South 重命名模型的最简单方法?

在特定领域继续训练预训练的 BERT 模型的最简单方法是啥?

将 GAE 可扩展性移植到开源框架中的最简单方法