Node.js使用orm2进行update操作时关联字段无法修改的解决方法


Posted in Javascript onJune 13, 2017

前言

最近在工作中遇到一个问题,在使用Orm2进行model修改时,发现当对关联字段进行update操作时,执行了2次SQL,第一次把值改为了我们期望的值,第二次又会把值改回成原来的值。

经过调查,当autoFetch开启时,会自动取得关联model,此时的model为:

{
roomId: xxx, // 关联的roomId
room: {
// 关联的room对象
}
}

第一次会按照roomId去修改,第二次则会按照fetch的关联对象room进行修改,导致了我们看到的执行了两次SQL的情况。

解决方法

在save操作前将fetch的对象删除即可。

for (var j in originEntity) {
if (_.isObject(originEntity[j])) {
delete originEntity[j];
}
}

originEntity.save(function(err) {
if (err) {
return res.json({ errMsg: err[0].msg });
}

return res.json({ code: 200, data: originEntity });
});

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
jQuery实现随意改变div任意属性的名称和值(部分原生js实现)
May 28 Javascript
jQuery 插件开发指南
Nov 14 Javascript
Yii2使用Bootbox插件实现自定义弹窗
Apr 02 Javascript
Javascript非构造函数的继承
Apr 27 Javascript
JavaScript中的Math.sin()方法使用详解
Jun 15 Javascript
jQuery实现的放大镜效果示例
Sep 13 Javascript
AngularJS 验证码60秒倒计时功能的实现
Jun 05 Javascript
浅谈Koa服务限流方法实践
Oct 23 Javascript
AngularJS使用ng-repeat遍历二维数组元素的方法详解
Nov 11 Javascript
微信小程序实现写入读取缓存详解
Aug 30 Javascript
微信小程序实现锚点跳转
Nov 23 Javascript
CocosCreator入门教程之网络通信
Apr 16 Javascript
bootstrap timepicker在angular中取值并转化为时间戳
Jun 13 #Javascript
微信小程序实现多个按钮toggle功能的实例
Jun 13 #Javascript
JavaScript基于扩展String实现替换字符串中index处字符的方法
Jun 13 #Javascript
微信小程序--组件(swiper)详细介绍
Jun 13 #Javascript
Vue.js实现微信过渡动画左右切换效果
Jun 13 #Javascript
JS实现求数组起始项到终止项之和的方法【基于数组扩展函数】
Jun 13 #Javascript
基于pako.js实现gzip的压缩和解压功能示例
Jun 13 #Javascript
You might like
PHP常用特殊运算符号和函数总结(php新手入门必看)
2013/02/02 PHP
解析strtr函数的效率问题
2013/06/26 PHP
PHP变量的定义、可变变量、变量引用、销毁方法
2013/12/20 PHP
php对象和数组相互转换的方法
2015/05/12 PHP
修改PHP脚本使WordPress拦截垃圾评论的方法示例
2015/12/10 PHP
Json_encode防止汉字转义成unicode的方法
2016/02/25 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
2018/06/16 PHP
解决Laravel5.5下的toArray问题
2019/10/15 PHP
Yii 实现数据加密和解密
2021/03/09 PHP
用JavaScript修改CSS属性的代码
2013/05/06 Javascript
js浮动图片的动态效果
2013/07/10 Javascript
javascript伸缩菜单栏实现代码分享
2015/11/12 Javascript
极力推荐10个短小实用的JavaScript代码段
2016/08/03 Javascript
JS获得一个对象的所有属性和方法实例
2017/02/21 Javascript
如何使用Bootstrap 按钮实例详解
2017/03/29 Javascript
easyui关于validatebox实现多重规则验证的方法(必看)
2017/04/12 Javascript
Vue如何引入远程JS文件
2017/04/20 Javascript
JS滚动到指定位置导航栏固定顶部
2017/07/03 Javascript
ionic选择多张图片上传的示例代码
2017/10/10 Javascript
加快Vue项目的开发速度的方法
2018/12/12 Javascript
解决vue动态路由异步加载import组件,加载不到module的问题
2020/07/26 Javascript
简单上手Python中装饰器的使用
2015/07/12 Python
对python 数据处理中的LabelEncoder 和 OneHotEncoder详解
2018/07/11 Python
python微信聊天机器人改进版(定时或触发抓取天气预报、励志语录等,向好友推送)
2019/04/25 Python
Django实现任意文件上传(最简单的方法)
2020/06/03 Python
Python生成随机验证码代码实例解析
2020/06/09 Python
凯特·丝蓓英国官网:Kate Spade英国
2016/11/07 全球购物
北京天润融通.net面试题笔试题
2012/02/20 面试题
机械制造专业个人的自我评价
2013/12/28 职场文书
2014年小学美术工作总结
2014/12/20 职场文书
2015年房地产销售工作总结
2015/04/20 职场文书
慈善献爱心倡议书
2015/04/27 职场文书
毕业论文答辩演讲稿
2015/06/23 职场文书
Redis高并发防止秒杀超卖实战源码解决方案
2021/11/01 Redis
mysql timestamp比较查询遇到的坑及解决
2021/11/27 MySQL
Win11 Build 22000.829更新补丁KB5015882发布(附更新修复内容汇总)
2022/07/15 数码科技