router.post('/', (req, res)=>{
let searchTerm = req.body.search;
const kwords = new keywords({
keyword: searchTerm
});
keywords.findOne({keyword: searchTerm}, function(err, key){
if(err) throw err;
else if(!key){
kwords.save();
}
});
google.list({
keyword: searchTerm,
num: 15,
detail: false,
nightmare: {
show: false
}
})
.then(function(images){
images.forEach(function(image, index){
let url = image.url;
//compression
Jimp.read(url, function(err, img){
if(err) throw err;
if(img){
img.resize(256, 256)
.quality(60)
.greyscale()
.write("public/images/"+searchTerm+index+".jpg");
}
});
});
res.redirect('/list');
}).catch(function(err){
console.log('err', err);
});
我正在使用image-scraper和jimp库。
Jimp.read()函数内,当url没有mime类型时,img变量为null,所以我大部分时间只能获取13,14张图片,而不是15张。请有经验的人帮我解决这个问题,让我可以成功获取所有15张图片。
});