我有一个包含4个网址的数组,每个网址都有json数据。如何循环访问网址
例如: urls = [“http://url1.com”, “http://url2.com”,“http://url3.com”,“http://url4.com”];
每个网址都有json一个学生信息,如
{ date: 08/05/2014
studentname: 'xyz'
student marks:[
maths:80
science:60
]
}
现在我想循环浏览所有4个网址,在这种情况下4个学生信息一次获得所有学生标记(意味着所有信息都集成到一个对象中)所以稍后我可以解析并找出哪个学生最高标记或最低标记?如何在node.js中完成?
答案 0 :(得分:1)
https://github.com/mikeal/request https://github.com/caolan/async#map
var async = require('async');
var request = require('request');
async.map(urls, function(url, callback) {
request(url, function(err, response, body) {
callback(err, body);
})
}, function(err, students){
if(err) {
return console.error(err);
}
//Do sth. with students array
});
答案 1 :(得分:1)
这可以解决您的问题,请在javascript中使用闭包属性。简单但高效。只是有一个处理请求部分的函数并在循环中调用该函数。并且,其余部分留在函数和闭包属性的词法范围内。
const request = require("request");
function getTheUrl(data) {
var options = {
url: "https://jsonplaceholder.typicode.com/posts/" + data
}
return options
}
function consoleTheResult(url) {
request(url, function (err, res, body) {
console.log(url);
});
}
for (var i = 0; i < 10; i++) {
consoleTheResult(getTheUrl(i))
}