You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NodeJS 如何将 MySQL 查询返回的 rows 数据发送到 RabbitMQ 队列

解决方案

MySQL Node.js 驱动返回的rows本身就是可直接JSON序列化的普通JavaScript数组,不需要特殊格式转换,直接复用你现有发送模拟数据的逻辑即可,根据你的需求有两种常用处理方式:

  • 单条数据发送(你用唯一Id查询,结果只会返回1条):先提取数组首元素再序列化
    dbConnection.query("SELECT * FROM customer WHERE Id = ?", customerId, (err, rows, fields) => {
      if (err) {
        // 自行处理错误逻辑
        return res.status(500).json({error: err.message})
      }
      // 提取单条客户数据
      const customerEntity = rows[0]
      // 直接序列化转Buffer发送到RabbitMQ
      channel.sendToQueue("message-queue", Buffer.from(JSON.stringify(customerEntity)))
      // 原有返回逻辑保留
      res.status(200).json(rows)
    })
    
  • 全量查询结果发送(比如多条查询、需要保留数组结构):直接序列化rows即可
    channel.sendToQueue("message-queue", Buffer.from(JSON.stringify(rows)))
    

注意:如果查询结果为空,rows会是空数组,序列化后也能正常发送到队列,不会报错,你可以根据业务需要提前做非空判断。

内容的提问来源于stack exchange,提问作者BaRRuKa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 23:54:02