javascript - NodeJS 将响应输出返回到对象数组

标签 javascript node.js

我的服务器端有一个函数,它从数据库返回结果。 这是函数

    const sql = 
   `SELECT addresses
    FROM  Addresses
    WHERE JSON_EXTRACT(addresses, '$.address') LIKE ? `

  const values = ['"'+beginning+'%']

  const query = connection.query(sql, values, (error, results, fields) => {

      connection.end()
      if (error) {
        return reject(error)
      }
      resolve(results)
    })
  })
    .then((results) => {

      return {
        type: 'address',
        attributes: results

      }
    })

它的输出是这样的

    {
  "data": {
    "type": "address",
    "attributes": [
      {
        "addresses": "{\"address\": \"5 street, auburn, nsw 2144\", \"display\": \"5-7 Mary Street, AUBURN, NSW 2144\"}"
      },
      {
        "addresses": "{\"address\": \"5 street, lidcombe, nsw 2141\", \"display\": \"5 Street, LIDCOMBE, NSW 2141\"}"
      }
    ]
  }
}

我是 JS 新手,我需要按如下方式进行上述输出

{
  "data": [
    {
      "type": "address",
      "id": "5-13 aubrey street, granville, nsw 2142",
      "attributes": {
        "address": "5-13 aubrey street, granville, nsw 2142",
        "display": "5-13 Aubrey Street, GRANVILLE, NSW 2142"
      }
    },
    {
      "type": "address",
      "id": "5 street, lidcombe, nsw 2141",
      "attributes": {
        "address": "5 street, lidcombe, nsw 2141",
        "display": "5 Street, LIDCOMBE, NSW 2141"
      }
    },
    {
      "type": "address",
      "id": "5-7 mary street, auburn, nsw 2144",
      "attributes": {
        "address": "5-7 mary street, auburn, nsw 2144",
        "display": "5-7 Mary Street, AUBURN, NSW 2144"
      }
    }
    }
  ]
}

有人可以帮助我更改函数的 .then((results) 主体以实现此目的吗?

在客户端,我在函数内获取结果,这就是我返回它的方式

      return $http.get(`${API_URL}/addresses/?beginning=${searchTerm || ''}`)
  .then((result) => {

    // Only want to return the address string

    return result.data.data((address) => address.attributes.display)
  })

但是我得到 result.data.data 不是一个函数

最佳答案

您可以将返回更改为

return {
    type: 'address',
    attributes: results.map(result => JSON.parse(result.addresses))
}

关于javascript - NodeJS 将响应输出返回到对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48972923/

相关文章:

javascript - JS 进度条在 InAppBrowser 中不起作用

javascript - Apollo GraphQL 不断接收请求,没有进行任何查询或更改

node.js - 如何确定 T-SQL 查询中的 rowsAffected 数组元素?

json - Node.JS:如何抓取 json 页面以获取特定数据

javascript - $resource 无法从 json 获取数组

javascript - 如何使用 javascript 中的按钮导航我的 Facebook iframe?

javascript - 将 JSON 字符串转换为 Angular 函数?

python - 仅在Electron中的python脚本执行结束时收到PythonShell消息

javascript - Node.js 的 SSH 客户端

javascript - 正则表达式 JavaScript 捕获直到(之前)可选字符串