我有这个控制器从instagram api获取数据。
controller.prototype.getData = function getData(url, tag, callback) {
var clientId = '81e3d3f35c8a4438964001decaa5a31f'
var catchAll = [];
var config = {
'params': {
'client_id': clientId,
'callback': 'JSON_CALLBACK'
}
}
vm.url = 'https://api.instagram.com/v1/tags/' + tag + '/media/recent/';
http.jsonp(url, config)
.then(function(response) {
vm.imageData = vm.imageData.concat(response.data.data);
vm.instagram.storeData(vm.imageData).then(function(response) {
})
var paging = response.data.pagination;
if (paging.hasOwnProperty('next_url')) {
getData(paging.next_url)
} else {
callback.call();
}
})
}
然后在节点mongodb控制器上我有这个
exports.create = function(req, res) {
var dataObj = req.body;
dataObj.forEach(function(item) {
Data.find({
'id': item.id
}, function(err, data) {
if (err) {
return handleError(res, err);
}
if (data.length == 0) {
Data.create(item, function(err, data) {
if (err) {
return handleError(res, err);
}
});
}
});
});
};
这里的逻辑是,如果用户不存在于集合中,我将保存它。我的问题是,为什么如果让300说instagram对象需要太长时间才能回复?有没有办法如何以最佳性能做到这一点?