如何使用NodeJS服务器合并来自多个API的JSON数据

问题描述:

我有一个NodeJS服务器,它从三个不同的API接收数据,然后将JSON从三个API发送到我的前端。由于我用三种不同的API标记了数据,因此它被发送到三个不同的数组中(这里错误的术语可能是?)。如果可能,我试图将它全部发送到一个数组中!如何使用NodeJS服务器合并来自多个API的JSON数据

代码:

var express = require('express'); 
var router = express.Router(); 
var request = require('request'); 
var app = express(); 

router.get("/", function(req, res){ 
var request = require('request-promise'); 
var data1; 
var data2; 
var data3; 


request("http://api1.com").then(function(body){ 
data1 = JSON.parse(body); 

return request("http://api2.com"); 
}) 
.then(function(body) { 
    data2 = JSON.parse(body); 


    return request("http://api3.com"); 
}) 
.then(function(body){ 
    data3 = JSON.parse(body); 

    res.json("services.ejs", {data1: data1, data2: data2, data3: data3}); 
    }) 
}); 

module.exports = router; 

结果:

{"data1":[{All JSON from API #1}] - "Data2":[{All JSON from API #2}] - "Data3":[{All JSON from API #3}]} 

通缉的结果:

{"allData": [{All JSON from API #1 #2 #3}]}

您可以连接3个不同的结果汇集成一个阵列:

var alldata = data1.concat(data2).concat(data3); 
res.json("services.ejs", {data: alldata}); 

相应地进行调整,具体取决于您想要的结果。