首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NodeJS向对象数组返回响应输出

NodeJS向对象数组返回响应输出
EN

Stack Overflow用户
提问于 2018-02-25 19:33:05
回答 1查看 46关注 0票数 0

我在服务器端有一个从数据库返回结果的函数。下面是函数

代码语言:javascript
运行
复制
    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

      }
    })

其输出如下所示

代码语言:javascript
运行
复制
    {
  "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的新手,我需要按如下方式进行上述输出

代码语言:javascript
运行
复制
{
  "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) )来实现这一点。

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

代码语言:javascript
运行
复制
      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不是一个函数

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-25 19:37:34

您可以将返回值更改为

代码语言:javascript
运行
复制
return {
    type: 'address',
    attributes: results.map(result => JSON.parse(result.addresses))
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48972923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档