首页 > 解决方案 > 遍历 RowPacketData(从节点 js 中的 mysql 查询返回的结果)

问题描述

案例是我有代码从 MySQL 获取产品名称和图像路径,所以我得到 RowPacketData 以返回查询,如下所示:

[ RowDataPacket {
    Id: 1,
    Heading: 'Banner 1',
    Banner_Description: 'This is Banner 1 Description',
    Image_Name: '1596019684532_command3.png' },
  RowDataPacket {
    Id: 2,
    Heading: 'Banner 2',
    Banner_Description: 'This is Banner 1 Description',
    Image_Name: '1596019684538_command4.png' } ]

现在我想将'Image_Name'附加到'var/www/html/Image_Name'之类的东西并将其发送到前端。为每个 Image_Name 实现此逻辑的最佳方法是什么。注意:我不想循环。

标签: javascriptmysqlnode.jsapiloops

解决方案


大概您想将 JSON 数组发送到您的前端。Image_Name因此,您需要一些代码来为每个元素添加路径。鉴于您的数组位于input.

function prependPath (input, path = 'var/www/html/') {
  for (let i=0; i<input.length; i++) {
    const item = input[i]
    item.Image_Name = path + item.Image_Name
  }
  return input

或者你可以这样做更简洁一些。

function prependPath (input, path = 'var/www/html/') {
  input.forEach (item => item.Image_Name = path + item.Image_Name)
  }
  return input
}

然后用类似的东西调用函数res.json(prependPath (input))(如果你使用的是 Express)。


推荐阅读