如何在Loopback Framework中覆盖和重命名User内置模型的属性

时间:2016-07-05 13:37:25

标签: javascript loopbackjs strongloop

我正在使用loopback框架为我的应用程序创建RESTful API。

根据文档,我创建了自己的客户模型,扩展了内置模型User。为了让我的客户有意义,API应该是母语,即葡萄牙语。

当我扩展内置模型时,某些属性以英语显示,而其他属性对我的应用程序没有意义,例如密码 senha 并删除<例如,strong> username 属性。

    {
      "name": "Cliente",
      "plural": "Clientes",
      "base": "User",
      "idInjection": false,
      "strict":"true",
    ...
    }

    {
      "name": "User",
      "properties": {
        "realm": {
          "type": "string"
        },
        "username": {
          "type": "string"
        },
        "password": {
          "type": "string",
          "required": true
        },
        "email": {
          "type": "string",
          "required": true
        },
        "emailVerified": "boolean",
        "verificationToken": "string"
      },
     ...
  }

我在节点模块中找到了环回模型的结果,但是这个解决方案看起来并不正确,有没有办法在我的代码中配置它而不是改变环回基本模型? / p>

1 个答案:

答案 0 :(得分:1)

我认为你要做的是“重命名”一个属性,我是否正确? 如果是这样,您可以执行以下操作:

"senha": {
      "type": "string",
      "id": true,
      "required": true,
      "index": true,
      "postgresql": {
        "columnName": "password"
      }
    }

请注意,我有一个“postgresql”属性,这取决于您的数据库连接器。检查here。在该属性中,我有一个“columnName”,这是我数据库中该列的真实名称。所以“senha”是该属性的新名称。

要隐藏username属性,可以在根对象中执行以下操作:

"hidden":["username"]

您的最终文件应如下所示:

{
    "name": "Cliente",
    "plural": "Clientes",
    "base": "User",
    "idInjection": false,
    "strict": "true",
    "properties": {
        "realm": {
            "type": "string"
        },
        "username": {
            "type": "string"
        },
        "senha": {
            "type": "string",
            "required": true,
            "postgresql": {
                "columnName": "password"
            }
        },
        "email": {
            "type": "string",
            "required": true
        },
        "emailVerified": "boolean",
        "verificationToken": "string"
    },
    "hidden": ["username"]
}