ORM工具 Sequelize:update方法产生更新语句,而非update语句的异常情况的原因
异常:
- 异常描述:
- 由于一些原因需要对相关的方法进行封装处理,于是乎进行了简单的封装操作。
- 在查阅了官方文档,以及相关的资料后。在官方文档中提及了update方法,均是create后获取的对象实例,之后再执行更新的操作,而没有以形参作为对象进行update的调用。
- 在我的方法中,我使用了形参对象进行执行update操作,但从输出的 日志中,始终为insert into
我的代码:
let updateToId = async (catalog) => { if (!catalog instanceof Catalog) return false; //注意,我这里使用的是形参进行的update 调用,这里也是问题的原因
//标蓝色方法,是我的在class对象中封装的获取非主键ID 方法,返回的结果类似于{xxx:xx,xxx2:xx}这种
let data = await catalog.update(catalog.jsonCatalogUp(), { where: { id: catalog.id } }); return data; }
此时实际输出的日志信息均是 insert into
解决办法:
const Catalog = require('../models/catalogModel').Catalog; let updateToId = async (catalog) => { if (!catalog instanceof Catalog) return false; //使用非形参对象进行调用,形参仅用来参数封装 let data = await Catalog.update(catalog.jsonCatalogUp(), { where: { id: catalog.id } }); return data; }
分类:
Nodejs
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?