node+axios實現(xiàn)下載外網(wǎng)文件到本地
引言
作為一個web前端開發(fā),對axios肯定不陌生,但是在前端開發(fā)中,一般是使用axios來請求后端接口,獲取數(shù)據(jù)。而使用node+axios下載網(wǎng)絡(luò)文件到本地磁盤可能很少接觸,搜索了很多相關(guān)的博客文章,講解的好像都不夠清晰明了,所以本文就記錄一下實踐方法。
初始化項目
npm init -y
安裝axios
npm i -S axios
實現(xiàn)邏輯
根目錄下新建app.js
// app.js
const axios = require('axios');
const fs = require('fs');
async function loadImg(imgUrl) {
let { data } = await axios({
url: imgUrl,
headers: {
'Content-Type': 'multipart/form-data',
},
responseType: 'arraybuffer',
})
await fs.promises.writeFile(`./01.jpg`, data, 'binary');
}
;(async function () {
let url = 'https://tiven.cn/static/img/img-post-08-c1kr9HQ13lTEmcyI_mowX.jpg'
console.time('download time:')
try {
await loadImg(url)
console.log('下載成功')
} catch (err) {
console.log(err)
}
console.log('')
console.timeEnd('download time:')
})();說明:
axios 的參數(shù) headers 中 Content-Type默認是application/json,需要設(shè)置為 multipart/form-data;
responseType默認是json,需要設(shè)置為arraybuffer(二進制格式);
writeFile方法的第三個參數(shù)encoding默認是utf8,必須設(shè)置為binary(二進制格式),如果不設(shè)置,下載的文件打不開。
console.time和console.timeEnd是node中提供的計時方法。
執(zhí)行
node app.js
輸出
下載成功
download time:107.866ms
如果想要批量爬取某個網(wǎng)站的圖片或其他文件,可以使用node爬蟲工具cheerio來實現(xiàn)。
參考文檔
http://nodejs.cn/api/fs.html#fs_fs_writefile_file_data_options_callback
http://www.axios-js.com/docs/#Request-Config
以上就是node+axios實現(xiàn)下載外網(wǎng)文件到本地的詳細內(nèi)容,更多關(guān)于node axios下載外網(wǎng)文件到本地的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
NodeJs實現(xiàn)簡易WEB上傳下載服務(wù)器
這篇文章主要為大家詳細介紹了NodeJs實現(xiàn)一個簡易WEB上傳下載服務(wù)器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-08-08
3分鐘快速搭建nodejs本地服務(wù)器方法運行測試html/js
本篇文章主要介紹了3分鐘快速搭建nodejs本地服務(wù)器方法運行測試html/js,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-04-04
小結(jié)Node.js中非阻塞IO和事件循環(huán)
本文針對在Node.js關(guān)鍵的兩個概念:非阻塞IO和事件循環(huán)進行了適當(dāng)?shù)目偨Y(jié),需要的朋友可以參考下2014-09-09
Node.js?npm?安裝過程中EBUSY錯誤的分析與解決方案
使用?npm?進行安裝是一個非常常見的操作,npm在安裝過程中可能出現(xiàn)EBUSY錯誤,本文就來介紹一下如何解決,具有一定的參考價值,感興趣的可以了解一下2025-01-01
從零開始學(xué)習(xí)Node.js系列教程三:圖片上傳和顯示方法示例
這篇文章主要介紹了Node.js圖片上傳和顯示方法,結(jié)合實例形式分析了nodejs基于http傳輸圖片文件及顯示圖片的相關(guān)實現(xiàn)步驟與操作技巧,需要的朋友可以參考下2017-04-04
在Node.js中實現(xiàn)后端與前端的交互的方法詳解
在前后端不分離的應(yīng)用模式中,前端頁面看到的效果都是由后端控制,由后端渲染頁面或重定向,也就是后端需要控制前端的展示,前端與后端的耦合度很高, 所以本文給大家介紹了在Node.js中實現(xiàn)后端與前端的交互的方法,需要的朋友可以參考下2024-09-09

