未调用 Strongloop Loopback 内置模型扩展

Strongloop Loopback built-in model extension not being called

不确定我在这里遗漏了什么。我正在尝试使用其文档中的示例扩展 Loopback 中的内置用户模型:http://docs.strongloop.com/display/public/LB/Extending+built-in+models#Extendingbuilt-inmodels-ExtendingamodelinJavaScript

我创建的文件 ./common/models/user.js 从未被应用程序加载,但是,这当然意味着我的扩展代码从未被调用。因为文档是错误的,所以关于正确的方法有什么想法吗?这是我目前拥有的(不是相关的,因为该文件从未被框架加载):

console.log('User.js file being loaded');
module.exports = function(User){
  User.on('attached', function(){
    console.log(User);
  });
};

请注意,两个控制台语句都不会触发。

您是否完成了模型-config.json 设置?那里已经有一个 User 条目,您需要添加一个小写的 user 条目才能加载您的扩展模型。

...
// built-in User model
"User": {
  "dataSource": "db"
},
// extends user 
"user": {
  "dataSource": "db"
}
...

您还需要一个 user.json 文件,指定它将扩展内置的 User 模型(您可以在 node_modules/loopback/common/models/) 使用 "base": "User" :

{
  "name": "user",
  "base": "User",       // will include all User props
  "idInjection": true,
  "properties": {
    "pincode": {
      "type": "number"  // only add new props here
    }
  },
  "validations": [],
  "relations": {},
  "acls": [],
  "methods": []
}

但我建议使用小写用户以外的其他名称来扩展大写用户,因为这很容易混淆两者。我个人使用 PlayerPerson(自定义复数 People)而不是 user.