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

