gpt4 book ai didi

javascript - 查询为空 Node Js Sequelize

转载 作者:行者123 更新时间:2023-12-03 22:43:16 25 4
gpt4 key购买 nike

我正在尝试更新 nodejs 应用程序中的数据。我用 postman 测试过。

我的开发步骤是:

  • 从 DB (MySQL) 获取 ID 为 10 的数据以进行更新 >> 未处理的拒绝 SequelizeDatabaseError:查询为空
  • 我认了,我用错了 id,所以我改成了正确的:50 >> 其他一些错误
  • 好的,我修复了与我的不准确工作相关的其他一些错误,并使用了良好的 ID:50 >> 未处理的拒绝 SequelizeDatabaseError:未处理的拒绝 SequelizeDatabaseError:查询为空
  • 奇怪的行为,因为这个 id 之前是好的...(在 3. 步骤中)好吧,我只是将 id 更改为另一个正确的:51 >> 一些其他错误
  • 好的,我修复了另一个错误,使用新的新 ID 再次尝试更新:51 >> 未处理的拒绝 SequelizeDatabaseError: Query was empty

  • 在我看来,我只能一次获得有效数据,在我无法到达之后......
    完整的堆栈跟踪:
    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 一天后,我才认出,第二次和第三次 sequelize 进行空 SQL 查询。在代码片段下方:

    好的 SQL 更新:
    Executing (default): UPDATE `cardModules` SET `field1`='xxxxxxxx',`field2`='xxxxxxxxxx',`field3`='MEDIUM',`field4`=false,`field5`=false WHERE `id` = 43

    错误的 SQL 更新:
    Executing (default):

    问题是:为什么 Sequlize 这个?

    最佳答案

    我刚刚认识到问题的小时数。如果 sequelize 在 DB 值和可更新值中没有发现任何差异,那么将生成一个空的 SQL 字符串并要执行它。所以因为这个相同的 sequelize 抛出这个 Query is empty 消息。

    因此,如果没有更改但您想要更新,则会收到此错误。

    我处理这个问题来检查错误消息,如:

                if(err.message == 'Query was empty'){
    console.log('There is no changes in the update, lets continue the progress...');
    next();
    }

    关于javascript - 查询为空 Node Js Sequelize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48061748/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com