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

标签 node.js

我有一个 NodeJS 服务器,它从三个不同的 API 获取数据,然后将来自三个 API 的 JSON 发送到我的前端。由于我对来自三个 API 的数据进行了不同的标记,因此它以三个不同的数组发送?(这里可能用错了术语?)。如果可能的话,我正在尝试将其全部发送到一个数组中!

代码:

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": [{来自 API #1 #2 #3 的所有 JSON}]}

最佳答案

您可以将 3 个不同的结果连接到一个数组中:

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

根据您想要的结果进行相应调整。

关于node.js - 如何使用 NodeJS 服务器合并来自多个 API 的 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38924055/

相关文章:

node.js - 如何将spark rdd保存到csv文件

javascript - Electron 在页面上保存用户更改

node.js - 快速错误 - 500 错误 : Failed to lookup view "index"

javascript - AWS IoT - 如何指定证书路径(Swagger + NodeJS)

javascript - 部署到 Heroku 时无法在 grunt 上找到模块

javascript - 使用 javascript/nodejs 分割 url 并存储在数组、对象或字符串中

javascript - 如何使 Sequelize 批量创建 x 条相同记录,仅增加日期?

javascript - ForEach 不更新主数组

node.js - Mocha --require 等到迁移

node.js - 带有 proxyquire 和 sinon 的 google-geocoder