前言

使用nodejs下载文件的的方法

内容

request

const fs = require('fs')
const request = require('request')

/**
 * 下载文件并写入本地磁盘
 * @param fileLink  文件URL地址
 * @param filePath  文件路径,如: c:xx/xx.jpg
 */
export function getFile(fileLink, filePath){
 if (fileLink??'' !== '') {
  return new Promise(resolve => {
    request({
      url: fileLink,
      method: 'GET', // 根据实际情况改变请求方式
      encoding: null
    }, (err, response, body) => {
      if (!err && response.statusCode === 200) {
        fs.writeFileSync(filePath, body, {encoding: "binary"})
        resolve(filePath)
      } else {
        reject(err)
      }
    })
  })
 }
}

pipe

const fs = require('fs')
const request = require('request')

/**
 * 下载文件并写入本地磁盘
 * @param uri  文件URL地址
 * @param filePath  文件路径,如: c:xx/xx.jpg
 * @param callback 回调
 */
export function getFile(uri, filePath, callback){
  if (uri??'' !== '') {
   request(uri).pipe(fs.createWriteStream(filePath)).on('close', () => { callback(filePath) })
  }
}

学无止境,谦卑而行.