【发布时间】:2016-03-29 22:25:28
【问题描述】:
我正在尝试在单个 URL 调用中调用多个 URL,并将其 json 响应推送到一个数组中,然后将该数组发送给最终用户。
我的代码如下所示:
var express = require('express');
var main_router = express.Router();
var http = require('http');
urls = [
"http://localhost:3010/alm/build_tool",
"http://localhost:3010/alm/development_tool",
"http://localhost:3010/alm/project_architecture"];
var responses = [];
main_router.route('/')
.get(function (req, res) {
var completed_requests = 0;
for (url in urls) {
http.get(url, function(res) {
responses.push(res.body);
completed_request++;
if (completed_request == urls.length) {
// All download done, process responses array
}
});
}
res.send(responses);
});
我也尝试过使用 npm 请求模块。 当我运行这段代码时,它只返回 NULL 或一些只有标题的随机输出。
我的目标是在单个节点获取请求中调用多个 URL,并将其 JSON 输出附加到数组中并发送给最终用户。
谢谢
【问题讨论】:
-
你必须使用回调或者我可以建议异步模块github.com/caolan/async
-
见this answer。您实际上应该使用
res.on('end', function...等待响应结束
标签: javascript json node.js express npm