记nodejs 下载图片内容为空,大小是0kb的问题解决方案

今天在下载图片的时候发现什么方法都尝试了然后一直都是无内容,
最后面我改变一下createWriteStream路径到上一层目录就可以正常写入图片,
由于我是用pm2启动的服务然后又开启了watch 所以在我往目录里面写文件的时候pm2就会检测改动,所以写入图片的的操作就会被刷新.关闭watch解决问题

附上我的代码卸载图片并根据日期创建目录

const downImageFile = async ({ media_id, appid }) => {
    return new Promise(async (resolve) => {

        if (fsExistsSync(imgPath)) {
            let src = await writePic({ media_id, appid })
            resolve(src)
        } else {
            fs.mkdir(imgPath, async (err) => {
                if (err) return console.error(err);
                let src = await writePic({ media_id, appid })
                resolve(src)
            })
        }
    })
}
const writePic = ({ media_id, appid }) => {
    return new Promise(resolve => {
        let imgPath = path.join(__dirname, `../public/images/${moment().format('YYYY-MM-DD')}`);
        let imgUrl = `${uuidv1()}.jpeg`;
        const access_token = await SaveToken({ appid });
        let stream = fs.createWriteStream(`${imgPath}/${imgUrl}`);
        let result = request(`https://api.weixin.qq.com/cgi-bin/media/get?access_token=${access_token}&media_id=${media_id}`);
        request.get(`https://api.weixin.qq.com/cgi-bin/media/get?access_token=${access_token}&media_id=${media_id}`)
            .pipe(stream)
            .on('close', function () {
                console.log('图片下载成功')
            });
    })
}

不懂的就留言吧


版权声明:本文为qq_25842063原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。