Async Download Images in Node JS
var async = require('async')
var mysql = require('mysql');
var exec = require('child_process').exec
var fs = require('fs');
var preurl = process.argv[2];
function download(row, cb)
{
var filename = row.name;
var pathname = 'images/' + filename;
fs.exists(pathname, function(exists) {
if (! exists) {
var url = preurl + filename;
exec('wget -c ' + url + ' -O ' + pathname, function(err, stdout, stderr) {
if (err) {
console.log(err);
} else {
console.log(filename + ' downloaded');
}
})
}
})
cb();
}
var connection = mysql.createConnection(
{
host: 'localhost',
user: 'admin',
password: '123456qQ',
database: 'idoc',
});
var queryString = 'SELECT name FROM images';
connection.query(queryString, function(err, rows, fields) {
if (err) {
console.log(err);
throw err;
}
async.eachLimit(rows, 20, download, function(err) {
if (err)
console.log(err)
});
})
connection.end();