【问题标题】:Why is loopback throwing the error: The `ModelDefinition` instance is not valid为什么环回会抛出错误:`ModelDefinition` 实例无效
【发布时间】:2016-04-29 08:25:23
【问题描述】:

我带Strongloop 兜风。我只是在尝试“入门”教程,以及人们通常想要/需要的基本功能。

我使用的是 Windows 和 PostgresSQL,所以我创建了一个新数据源并编辑了 model-config.json 以将内置模型数据源更改为这个新数据源,我们称之为 lbdev

之后,我关注了有关 creating the tables for the built-in models 的文档部分。表已创建(在 PgAdmin 中一切看起来都很好)。我运行了资源管理器,唯一的公共 API(用户)就在那里,到目前为止一切都很好。

接下来,使用 Arc,我试图从 lbdev 架构中发现模型(带有空表),但是对于存在的每个表,我都收到以下错误:

哎呀!出了点问题 ModelDefinition 实例无效。

详细信息name 不是唯一的(值:“用户”)。

名称:验证错误

消息ModelDefinition 实例无效。详细信息:name 不是唯一的(值:“用户”)。

详细信息:{"context":"ModelDefinition","codes":{"name":["uniqueness"]},"messages":{"name":["不是独一无二的"]}}

请求:/workspace/api/DataSourceDefinitions/server.lbdev/createModel

状态:422

好像已经完成了,但是 Arc 中的模型树是空的。有人能解释一下这里发生了什么吗?

注意:another post 有类似的问题,但提供的信息很少,所以我创建了一个新的。

【问题讨论】:

  • 我不确定您为什么要尝试在该架构上发现模型...是否已经存在其他表?如果是这样,那么您只想提取那些,而而不是从内置 LoopBack 模型自动创建的表。如果您尝试“发现”您刚刚从中生成表的模型,那么您自然会有重复的模型(它们是内置的,它们已经存在)。
  • 这是有道理的,但是如果我希望其他人“管理”这些模型并且他们需要通过界面进行操作,那么是否不可能在作曲家中拥有内置插件好吗?
  • 不,如果您想管理、扩展、更改任何内置模型,那么您需要创建一个新模型并将任何内置模型用作base
  • 感谢@jakerella,我想这应该关闭,或者如果您想提供您的 cmets 作为答案,我可以接受。
  • 我想我可以......这不是一个非常好的答案。 ;)

标签: node.js express model loopbackjs strongloop


【解决方案1】:

将我的 cmets 复制到答案中...

我不确定您为什么要尝试在该架构上发现模型...是否已经存在其他表?如果是这样,那么您只想提取那些,而不是从内置 LoopBack 模型自动创建的表。如果您尝试“发现”您刚刚从中生成表的模型,那么您自然会有重复的模型(它们是内置的,它们已经存在)。

如果您想管理、扩展、更改任何内置模型,那么您需要创建一个新模型并使用任何内置模型作为基础:

// common/models/visitor.json

{
  "name": "Visitor",
  "base": "User",
  // ... other options
  "properties": {
    // ... additional properties to those already on User
  },
  "acls": [
    // ... additional ACLs to those on User... careful, these might overwrite built-in restrictions!
  ],
  // ... other overwrites/additions
}

【讨论】:

    猜你喜欢
    • 2019-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-08
    • 2017-05-26
    • 1970-01-01
    • 1970-01-01
    • 2014-08-21
    相关资源
    最近更新 更多