1. 程式人生 > >記nodejs 下載圖片內容為空,大小是0kb的問題解決方案

記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('圖片下載成功') }); }) }

不懂的就留言吧