【发布时间】:2017-08-05 03:14:13
【问题描述】:
几天来,我一直在为这个循环感到困惑,并不能完全得到我需要的东西。
我遍历我的搜索结果数组 (mdb_results) 并从每个对象中提取 .name 以用作 Google CSE 图像搜索中的 _search 术语。
CSE 返回另一个数组 (cse),我想将它附加到从中提取 _search 术语 (mdb_results[i]) 的对象中。
router.get('/json', function(req, res, next) {
var ImageSearch = require('node-google-image-search');
MongoClient.connect(url, function(err,db){
db.collection('mycatalog')
.find({$text: {$search:"FOO" }})
.toArray(function(err, mdb_results){
for (var i=0; i<mdb_results.length; i++){
var _search = mdb_results[i].name ;
ImageSearch(_search, function(cse){
// How to add cse.img to mdb_results[i].images ??
// mdb_results[i].images = cse;
// gives undefined
},0,2);
};
res.send(mdb_results);
});
});
});
我最初的mdb_results 看起来像这样。
[{"name":"FOO"},{"name":"FOOOO"}]
我正在努力实现这样的目标,
[{"name":"FOO",
"images":[{"img1":"http://thumbnail1"},{"img2":"http://thumbnail2"}]
},
{"name":"FOOOO",
"images":[{"img1":"http://thumbnaila"},{"img2":"http://thumbnailb"}]
}]
谁能告诉我如何做到这一点?
谢谢
【问题讨论】:
标签: javascript node.js loops asynchronous google-custom-search