最近用了electron,內部需要實現一個下載,後來查詢資料等發現實現方式和node是一樣的(electron可以使用node的api)
import os from 'os'
import fs from 'fs'
import path from 'path'
import http from 'http'
import https from 'https'
//此處promise是因爲業務需要,可以刪除
downLoadFile(url, name) {
return new Promise((resolve, reject) => {
const homeDir = os.homedir() //獲取用戶主目錄地址
const filename = path.join(homeDir, `/${name}`) //組裝文件存放地址
const file = fs.createWriteStream(filename) //生成一個寫入文件的流
let httpType
if (url.split('://')[0] === 'http') { //判斷是什麼類型的請求
httpType = http
} else {
httpType = https
}
httpType.get(url, response => {
response.pipe(file) //將文件流寫入
response.on('end', () => {
resolve(filename)
})
response.on('error', err => {
reject(err)
})
})
})
}