玩了一把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;
            }
        });
    });
});

王道中强流
不为繁华易匠心

在福州“土生土长”的 1986 年老程序员一枚,专注 Web 技术三十年。

1.7k 声望
44 粉丝
0 条评论
推荐阅读
Linux自动备份MySQL
首先找到你的MySQL配置文件my.cnf {代码...} 然后修改它, {代码...} 在[client]里增加三行: {代码...} 本来不需要这些操作,直接把用户名密码写到备份脚本里就可以,但是 MySQL 5.6 之后在命令行里写密码会出现...

王道中强流阅读 2k

「彻底弄懂」this全面解析
当一个函数被调用时,会创建一个活动记录(有时候也称为执行上下文)。这个记录会包含函数在 哪里被调用(调用栈)、函数的调用方法、传入的参数等信息。this就是记录的其中一个属性,会在 函数执行的过程中用到...

wuwhs17阅读 2.1k

封面图
反编译微信小程序获取小程序前端源码wxapkg
研究反编译的原因就是我自己辛苦了半个月写的小程序,忘记备份放在桌面,心急体验Win11系统 重装系统忘记备份源码,后悔莫及。 后来网上找了反编译的教程,反编译已经上线了的小程序 于是自己尝试了一下,真的可...

TANKING12阅读 9.2k评论 7

封面图
Nodejs 手动搭建 Express 项目
默认ejs模板只支持渲染以ejs为扩展名的文件,可能在使用的时候会觉得它的代码书写方式很不爽还是想用html的形式去书写。在这里可以使用engine 注册模板引擎的函数,让他处理指定后缀名的文件

yeungx6阅读 8.9k评论 5

PDF 预览和下载你是怎么实现的?
在开发过程中要求对 PDF 类型的发票提供 预览 和 下载 功能,PDF 类型文件的来源又包括 H5 移动端 和 PC 端,而针对这两个不同端的处理会有些许不同,下文会有所提及。

熊的猫7阅读 1.6k评论 1

封面图
HTTP,WebSocket 和 聊天室
在涉及到网络层面的相关内容时,不免会联系到 HTTP、TCP、WebSocket 等,但相信大部分人都并不是很清楚其中的一些关系和概念,特别是需要你去做语言表述时,网上有不少优秀的资料和文章,但知识仍需要自己去消化...

熊的猫8阅读 1.6k

封面图
npm下载包时报错 Unexpected token '.'问题解决
1. 出现问题当通过nvm切换nodejs版本为16以上时,npm install [package]报错:Unexpected token '.'2. 问题原因该问题不是npm的问题,也不是nodejs的问题,是nvm-windows的问题。3. 解决问题nvm-windows已经更新...

风一样的六六哥20阅读 8.5k评论 8

在福州“土生土长”的 1986 年老程序员一枚,专注 Web 技术三十年。

1.7k 声望
44 粉丝
宣传栏