玩了一把nodejs 批量下载保存远程图片文件 并更新数据库

var request = require('request');
var fs = require('fs');

var mysql = require('mysql');
var mydb = mysql.createConnection({
    host: 'localhost',
//    port: 3306,
    user: 'root',
    password: 'root',
    //charset: 'UTF8_GENERAL_CI',
    debug: false
});
mydb.connect(function(err){
    if (err) {
        console.error(err);
        throw err;
    }
});
mydb.query('USE `dbname`', function(err){
    if (err) {
        console.error(err);
        throw err;
    }
});

mydb.query("SELECT `id`,`image` FROM `fy_scenic` WHERE INSTR(`image`, 'http://') ORDER BY `image` ", function(err, rst) {
    if (err) {
        console.error(err);
        throw err;
    }
    rst.forEach(function(row) {
        console.log(row);

        var filepath = 'old/'+row.image.substr(36);
        var filedir = filepath.substr(0,7);

        if (!fs.existsSync(filedir)) {
            fs.mkdirSync(filedir);
        }
        request(row.image).pipe(fs.createWriteStream(filepath));

        var sql = "UPDATE `fy_scenic` SET `image`=? WHERE `id`=? ";
        sql = mydb.format(sql, [filepath, row.id]);
        console.log(sql);
        mydb.query(sql, function(err, rst) {
            if (err) {
                console.error(err);
                throw err;
            }
        });
    });
});
    原文作者:王道中强流
    原文地址: https://segmentfault.com/a/1190000000645290
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞