【问题标题】:Loopback validateUpsert set to false does not work, still runs validationsLoopback validateUpsert 设置为 false 不起作用,仍然运行验证
【发布时间】:2019-03-24 04:49:55
【问题描述】:

我有一个这样的环回模型集:

{
  "name": "MyModel",
  "plural": "MyModels",
  "base": "User",
  "idInjection": false,
  "options": {
    "validateUpsert": false
  },
...
}

当使用CREATEPOST 时,它运行良好,运行所有验证等,当然应该这样做。但是,如果我使用 PATCH /MyModels/{id},在 JSON 数据中只传递一个属性(因为我只想更新那个特定的属性值),我希望它不会对我没有通过的属性运行验证。

因为这里说: https://loopback.io/doc/en/lb3/Model-definition-JSON-file.html#advanced-options 如果您将 validateUpsert 设置为 false,upsert 将不会运行验证。

这里说: https://loopback.io/doc/en/lb3/Controlling-data-access.html#comprehensive-accesstype-property-and-end-point PATCH /MyModels/{id} 对应于updateAttributesPATCH /MyModels对应于upsert

所以我希望它不会对我没有在PATCH 方法中传递的属性运行验证。但它仍然存在。它甚至还能进行presence 验证。

我如何使用PATCHloopback 只是忽略(不验证和不更新)我没有通过的属性?

我目前正在使用loopback ^3.0.0

谢谢! :)

【问题讨论】:

    标签: javascript node.js validation loopbackjs loopback


    【解决方案1】:

    在您的模型文件中应用它。 "replaceOnPUT": 假

    【讨论】:

      【解决方案2】:

      你可以使用 put 方法,只传递你想要更新的字段:

      例如 /MyModels/{id}

      这里 id 是行的唯一标识符,并像这样传递正文:

      { “名称”:“新名称” }

      在这种情况下,只会验证和更新名称值。其他字段保持不变。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-10-16
        • 2016-04-12
        • 1970-01-01
        • 2021-10-15
        • 1970-01-01
        • 2021-07-05
        • 1970-01-01
        • 2016-07-10
        相关资源
        最近更新 更多