防止在Node.js中写入文件

时间:2019-04-22 08:50:19

标签: node.js createwritestream

我想从nodejs下载文件并编写它。目前,即时通讯使用axios和createWriteStream。它写得很好。但是我想在文件很大时处理写操作。当文件大于5mb时,我希望它返回消息“文件很大”,并防止写入文件。

如何处理createWriteStream中的大文件?谢谢。

这是我的代码:

async function downloadImage () {  
  const url = 'https://example.com/file.zip'
  const path = Path.resolve(__dirname, 'files', 'file.zip')
  const writer = Fs.createWriteStream(path)

  const response = await Axios({
    url,
    method: 'GET',
    responseType: 'stream'
  })

  response.data.pipe(writer)

  return new Promise((resolve, reject) => {
    writer.on('finish', () => {
      resolve({ path })
    })
    writer.on('error', () => {
      fs.unlink(path)
      reject(new Error('Cant download!'))
    })
  })
}

0 个答案:

没有答案