javascript - Loopback validateUpsert 设置为 false 不起作用,仍然运行验证
问题描述
我有一个这样的环回模型集:
{
"name": "MyModel",
"plural": "MyModels",
"base": "User",
"idInjection": false,
"options": {
"validateUpsert": false
},
...
}
使用CREATE
orPOST
时,它运行良好,运行所有验证等,当然应该这样做。但是,如果我使用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-pointPATCH /MyModels/{id}
对应updateAttributes
并PATCH /MyModels
对应于upsert
.
所以我希望它不会对我没有传入PATCH
方法的属性进行验证。但它仍然存在。它甚至仍然进行presence
验证。
我如何使用PATCH
它loopback
只会忽略(不验证和不更新)我没有通过的属性?
我目前正在使用loopback ^3.0.0
.
谢谢!:)
解决方案
您可以使用 put 方法并仅传递要更新的字段:
例如 /MyModels/{id}
这里 id 是行的唯一标识符,并像这样传递正文:
{“名称”:“新名称”}
在这种情况下,只会验证和更新名称值。其他字段保持不变。
推荐阅读
- python - Django:您是否需要使用特定文件夹名称命名标签库(模板、静态等)?
- visual-studio-code - 可以允许两个 vscode 配置吗?
- python - 将 PyQt5 按钮连接到函数时如何使用 lambda
- android - 如何将图像解析为后台应用程序并在颤动中输出为语音
- html - 如何使用 flex 划分行 - HTML CSS
- javascript - 如果我使用 setTimeout 延迟某些资源加载,onload 事件会稍后触发吗?
- r - 使用多个面板时如何向 HH::likert() 添加百分比值?
- javascript - 如何在测试库中使用表达式正则获取预期的字符串?
- amazon-web-services - 每个 aws 帐户的放大项目限制?
- wordpress - Woocommerce webhook 不向 printify 商店发送订单(Rest API)