Arrays 带NodeJs的Restful API和带;“返回”;对象
我正在用NodeJs和Mysql构建一个restfulapi,并尝试使用内部连接将结果从返回到表,但现在我返回整个“returns”对象,并且我希望返回数组中的数组,就像一个简单的json对象返回noSql数据库一样 当前Arrays 带NodeJs的Restful API和带;“返回”;对象,arrays,node.js,rest,api,Arrays,Node.js,Rest,Api,我正在用NodeJs和Mysql构建一个restfulapi,并尝试使用内部连接将结果从返回到表,但现在我返回整个“returns”对象,并且我希望返回数组中的数组,就像一个简单的json对象返回noSql数据库一样 当前 [ { coluna1: 'AAAAA', coluna2: 'XXXXX' },{ coluna1: 'AAAAA', coluna2: 'YYYYY' },{ colu
[
{
coluna1: 'AAAAA',
coluna2: 'XXXXX'
},{
coluna1: 'AAAAA',
coluna2: 'YYYYY'
},{
coluna1: 'BBBBB',
coluna2: 'ZZZZZ'
},
]
所需的
[
{
coluna1: 'AAAAA',
outra_arary: [
{
coluna2: 'XXXXX'
},{
coluna2: 'YYYYY'
}
]
},{
coluna1: 'BBBBB',
outra_arary: [
{
coluna2: 'ZZZZZ'
}
]
}
]
这是我如何构建方法的一个示例:
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
});
}
});
});
有人回答了关于stack overflow的巴西社区的问题,它按照我的需要工作:
你试过任何方法来达到你想要的结果吗?嗨!我试图创建一个javascript对象并用这个查询填充它,但没有成功。我看到一个名为的库,但我认为如果我使用它,我必须创建一个完整的ORM,甚至通过连接这个库而不是sql查询来获得结果。
// 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