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>.js
的 javascript 文件,其中声明您可以根据您提供的属性和选项“扩展”模型。服务器似乎从来没有命中文件...例如 - 我在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 功能的最简单方法?
从 HtmlHelper 的扩展方法中传递的 lambda 表达式中获取属性值的最简单方法是啥?