在我的扩展用户模型'user'上调用updateAttributes
成功,返回更新的文档,更新数据库,但如果我查询完全相同的文档,它将保持不变:
(以远程方法调用)
models.user.findById(userId, function (err, userInstance) {
console.log(userInstance)
let newAttributes = {
firstName:"Test"
}
userInstance.updateAttributes(newAttributes, function (err, newInstance) {
console.log(newInstance)
models.user.findById(userId, function (err, notUpdatedUser) {
console.log(notUpdatedUser)
});
});
});
第一个日志以firstName:'Original'
第二个日志使用firstName'Test'
第三个日志打印与第一个相同。
此外,数据库更改正确! 当我在我的数据源中检查我的条目时,updateAttributes被正确反映,最后我不知道旧数据来自何处。
任何暗示这里可能存在的潜在问题?我怀疑扩展用户模型但无处可挖掘
答案 0 :(得分:0)
如果您使用的是loopback3(不确定loopback2),则此行为取决于updateOnLoad
选项。您可以在此处找到一些信息:https://loopback.io/doc/en/lb3/Operation-hooks.html
默认情况下,create和updateAttributes不应用数据库更新 到模型实例返回回调,因此任何更改 由“装”钩子制成的被丢弃。要更改此行为,请设置a 每个模型选项updateOnLoad:true。