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

代码探幽者
• 阅读 7487
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;
            }
        });
    });
});
点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
RBAC 权限模型
RBAC0模型最基本的!(https://oscimg.oschina.net/oscnet/80a47f70d0c945ab47cadc28f63f77ab39d.png)MySQL脚本,没有建立外键约束。!(https://oscimg.oschina.net/oscnet/407d0ad45bb6f39
Stella981 Stella981
3年前
SpringBoot学习:整合shiro自动登录功能(rememberMe记住我功能)
首先在shiro配置类中注入rememberMe管理器!复制代码(https://oscimg.oschina.net/oscnet/675f5689159acfa2c39c91f4df40a00ce0f.gif)/cookie对象;rememberMeCookie()方法是设置Cookie的生成模
Stella981 Stella981
3年前
Leetcode No.39 组合总和
此文转载自:https://blog.csdn.net/jxq0816/article/details/113079141commentBox一、题目描述给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字
Stella981 Stella981
3年前
Docker图形化工具——Portainer
目标搭建dockerui!(https://oscimg.oschina.net/oscnet/53bc95a39fb664ce92be04ec7cda07e19a0.jpg)
Easter79 Easter79
3年前
SpringBoot学习:整合shiro自动登录功能(rememberMe记住我功能)
首先在shiro配置类中注入rememberMe管理器!复制代码(https://oscimg.oschina.net/oscnet/675f5689159acfa2c39c91f4df40a00ce0f.gif)/cookie对象;rememberMeCookie()方法是设置Cookie的生成模
Stella981 Stella981
3年前
LeetCode 39. Combination Sum
问题链接LeetCode39.CombinationSum(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fleetcode.com%2Fproblems%2Fcombinationsum%2Fdescription%2F)题目解析给一组数和一个目
Stella981 Stella981
3年前
Node.js 读本地文件和发起 POST 网络请求
最近需要使用Nodejs读取本地文件中的数据构造请求去批量请求CGI获取数据,这样就不用手工搬砖了。因为需要携带Cookie,故使用POST方法。代码//读取本地文件varfsrequire("fs");varreadlinerequire('readline');
Stella981 Stella981
3年前
39、chen框架
由于后台使用了chen框架,所以代码不能完全列出,可以到http://git.oschina.net/eternal\_rider/chen(http://git.oschina.net/eternal_rider/chen)下载项目,运行后,即可看到菜单效果级管理。示例框架中写了一个jquery菜单插件实现,可以使用存html代码样式
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
4个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(