【发布时间】:2022-01-19 02:58:18
【问题描述】:
我正在尝试更新 nodejs 应用程序中的数据。我用邮递员测试了它。
我的开发步骤是:
从数据库(MySQL)获取id为10的数据以更新>>未处理的拒绝SequelizeDatabaseError:查询为空
我认出来了,我用错了id,所以我改了一个正确的:50 >> 其他一些错误
- 好的,我修复了与我的不准确工作相关的其他一些错误,并使用了良好的 id:50 >> 未处理的拒绝 SequelizeDatabaseError:未处理的拒绝 SequelizeDatabaseError:查询为空
- 奇怪的行为,因为这个 id 之前很好......(在 3. 步骤中)好吧,我只是将 id 更改为另一个正确的:51 >> 其他错误
- 好的,我修复了另一个错误,使用新的新 id 再次尝试更新:51 >> 未处理的拒绝 SequelizeDatabaseError:查询为空
在我看来,我只能一次获得有效数据,在我无法到达之后...... 完整的堆栈跟踪:
Unhandled rejection SequelizeDatabaseError: Query was empty
at Query.formatError (C:\Users\bla_bla_bla\Documents\work\_nodejs\parentfolder\application\application\node_modules\sequelize\lib\dialects\mysql\query.js:223:16)
at Query.connection.query [as onResult] (C:\Users\bla_bla_bla\Documents\work\_nodejs\parentfolder\application\application\node_modules\sequelize\lib\dialects\mysql\query.js:55:23)
at Query.Command.execute (C:\Users\bla_bla_bla\Documents\work\_nodejs\parentfolder\application\application\node_modules\mysql2\lib\commands\command.js:30:12)
at Connection.handlePacket (C:\Users\bla_bla_bla\Documents\work\_nodejs\parentfolder\application\application\node_modules\mysql2\lib\connection.js:515:28)
at PacketParser.onPacket (C:\Users\bla_bla_bla\Documents\work\_nodejs\parentfolder\application\application\node_modules\mysql2\lib\connection.js:94:16)
at PacketParser.executeStart (C:\Users\bla_bla_bla\Documents\work\_nodejs\parentfolder\application\application\node_modules\mysql2\lib\packet_parser.js:77:14)
at Socket.<anonymous> (C:\Users\bla_bla_bla\Documents\work\_nodejs\parentfolder\application\application\node_modules\mysql2\lib\connection.js:102:29)
at emitOne (events.js:96:13)
at Socket.emit (events.js:188:7)
at readableAddChunk (_stream_readable.js:176:18)
at Socket.Readable.push (_stream_readable.js:134:10)
at TCP.onread (net.js:547:20
想法?
注意
我的问题与模型数据库同步无关。这些是同步的,因为我有一个案例 - 第一次调用 - 当我可以更新对象时!但是,如果我测试该 id 两次、第三次等...我会收到此错误。所以,如果这些都没有同步,那么我也无法在第一时间更新对象
更新
debbing 一天后,我才发现,第二次和第三次 sequlize 进行空 SQL 查询。下面是sn-ps的代码:
良好的 SQL 更新:
Executing (default): UPDATE `cardModules` SET `field1`='xxxxxxxx',`field2`='xxxxxxxxxx',`field3`='MEDIUM',`field4`=false,`field5`=false WHERE `id` = 43
糟糕的 SQL 更新:
Executing (default):
问题是:为什么要 Sequlize 这个?
【问题讨论】:
-
@BinitGhetiya 我以前检查过这篇文章。在这个 cade 中有一个未定义的字段错误,但在我的情况下,我的所有字段都已填写。我得到了数据,但只有一个,第二个我得到这个 &*@{Đ@& 错误:查询为空。
-
请再次确认您的所有表列都在类(模型)中定义
-
@BinitGhetiya 我的问题与模型数据库同步无关。这些是同步的,因为我有一个案例 - 第一次调用 - 当我可以更新对象时!但是,如果我测试该 id 两次、第三次等...我会收到此错误。所以,如果这些都没有同步,那么我也无法在第一时间更新对象。
-
了解您的查询,能否请您也将其添加到描述中。
标签: javascript mysql node.js sequelize.js postman