Node.js使用orm2進(jìn)行update操作時(shí)關(guān)聯(lián)字段無(wú)法修改的解決方法
前言
最近在工作中遇到一個(gè)問(wèn)題,在使用Orm2進(jìn)行model修改時(shí),發(fā)現(xiàn)當(dāng)對(duì)關(guān)聯(lián)字段進(jìn)行update操作時(shí),執(zhí)行了2次SQL,第一次把值改為了我們期望的值,第二次又會(huì)把值改回成原來(lái)的值。
經(jīng)過(guò)調(diào)查,當(dāng)autoFetch開啟時(shí),會(huì)自動(dòng)取得關(guān)聯(lián)model,此時(shí)的model為:
{ roomId: xxx, // 關(guān)聯(lián)的roomId room: { // 關(guān)聯(lián)的room對(duì)象 } }
第一次會(huì)按照roomId去修改,第二次則會(huì)按照f(shuō)etch的關(guān)聯(lián)對(duì)象room進(jìn)行修改,導(dǎo)致了我們看到的執(zhí)行了兩次SQL的情況。
解決方法
在save操作前將fetch的對(duì)象刪除即可。
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 }); });
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
詳解vue-cli 3.0 build包太大導(dǎo)致首屏過(guò)長(zhǎng)的解決方案
這篇文章主要介紹了詳解vue-cli 3.0 build包太大導(dǎo)致首屏過(guò)長(zhǎng)的解決方案,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-11-11vue $attrs和$listeners的使用與區(qū)別
本文主要介紹了vue $attrs和$listeners的使用與區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02vue中el-table兩個(gè)表尾合計(jì)行聯(lián)動(dòng)同步滾動(dòng)條實(shí)例代碼
項(xiàng)目開發(fā)中遇到一個(gè)比較兩個(gè)form差異的需求,但當(dāng)item過(guò)多就需要滾動(dòng)條,下面這篇文章主要給大家介紹了關(guān)于vue中el-table兩個(gè)表尾合計(jì)行聯(lián)動(dòng)同步滾動(dòng)條的相關(guān)資料,需要的朋友可以參考下2022-05-05Vue重要修飾符.sync對(duì)比v-model的區(qū)別及使用詳解
這篇文章主要為大家介紹了Vue中重要修飾符.sync與v-model的區(qū)別對(duì)比及使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07