archwhite
2/1/2016 - 2:27 PM

Async Download Images in Node JS

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();