在模型PUT上,我需要根据其原始值进行自定义验证。 在beforeUpdate模型钩子里面,我可以通过'this'关键字访问'next'函数,'request body'对象(如beforeUpdate参数)和更新模型本身。
有没有办法获得原始模型或其更改,而无需从DB查询?
甚至可以更新模型钩子中的当前模型(因为更改'this'属性不会生效)?
答案 0 :(得分:1)
免责声明:我是LoopBack开发人员。
有没有办法获得原始模型或其更改,而无需从DB查询?
不,那是不可能的。
查看loopback-datasource-juggler/lib/dao.js中updateAttributes()
的代码,当您向PUT /models/:id
发出请求时,会调用该代码:
inst.setAttributes(data);
inst.isValid(function (valid) {
if (!valid) {
if (cb) {
cb(new ValidationError(inst), inst);
}
} else {
inst.trigger('save', function (saveDone) {
inst.trigger('update', function (done) {
// etc.
在执行任何挂钩之前更新模型。