首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >带有NodeJs和Mysql的Restful API以及带有“return”对象的情况

带有NodeJs和Mysql的Restful API以及带有“return”对象的情况
EN

Stack Overflow用户
提问于 2018-06-12 03:35:04
回答 1查看 80关注 0票数 0

我正在使用NodeJs和Mysql构建Restful API,并尝试使用inner将结果从返回到表,但现在我返回整个"returns“对象,我想返回数组中的数组,就像返回noSql数据库的简单json对象一样。

当前

代码语言:javascript
复制
[
    {
        coluna1: 'AAAAA',
        coluna2: 'XXXXX'
    },{
        coluna1: 'AAAAA',
        coluna2: 'YYYYY'
    },{
        coluna1: 'BBBBB',
        coluna2: 'ZZZZZ'
    },
]

所需的

代码语言:javascript
复制
[
    {
        coluna1: 'AAAAA',
        outra_arary: [
            {
                coluna2:  'XXXXX'
            },{
                coluna2:  'YYYYY'
            }
        ]
    },{
        coluna1: 'BBBBB',
        outra_arary: [
            {
                coluna2:  'ZZZZZ'
            }
        ]
    }
]

这是我如何构建方法的一个示例:

代码语言:javascript
复制
router.get('/', (req, res, next) => {
    res.locals.connection.query(`select *
                                   from tabela1
                             inner join tabela2
                                on tabela1.id = tabela2.id;`, (error, results, fields) => {
        if (error) {
            res.send({
                "status" : 500,
                "error" : error,
                "response" : null
            });
        } else {
            res.send({
                "status" : 200,
                "error" : null,
                "response" : results
            });
        }
    });
});
EN

回答 1

Stack Overflow用户

发布于 2018-06-13 07:46:46

有人在巴西堆栈溢出社区上回答了我的问题,它就像我所需要的那样工作:https://pt.stackoverflow.com/questions/306134/restful-api-com-nodejs-e-mysql-com-multiplas-colunas-quero-retornar-json-em-nív

代码语言:javascript
复制
// Response from Mysql
const resultados = [
  {
      coluna1: 'AAAAA',
      coluna2: 'XXXXX'
  },{
      coluna1: 'AAAAA',
      coluna2: 'YYYYY'
  },{
      coluna1: 'BBBBB',
      coluna2: 'ZZZZZ'
  },
]

// Function that returns an array "other_array" that contains many objects with the data of the second column.
function retornaColuna(coluna) {
  const colunaFiltrada = new Array()
  resultados.forEach(valor => {
    if(valor.coluna1 == coluna)
      colunaFiltrada.push({ coluna2: valor.coluna2 })
  })
  return colunaFiltrada
}

// Create the expected structure
let resposta = new Array()
resultados.forEach(valor => {
  resposta.push({ coluna1: valor.coluna1, outra_array: retornaColuna(valor.coluna1) })
})

// Remove the duplicated columns 
resposta = resposta.filter((a) => !this[JSON.stringify(a)] && (this[JSON.stringify(a)] = true))

console.log(resposta) // It will return the expected
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50804855

复制
相关文章

相似问题

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