Сохранение файла изображения с узлом fs.createWriteStream (путь)? - PullRequest
0 голосов
/ 27 марта 2020

Попытка выполнить код из этой статьи и получение:

Error: ENOENT: no such file or directory, open '/home/ole/Temp/image/images/code.jpg'
Emitted 'error' event at:
    at internal/fs/streams.js:289:12
    at FSReqCallback.oncomplete (fs.js:153:23) {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/home/ole/Temp/image/images/code.jpg'

Как получить fs.createWriteStream(path) для создания файла, который он пытается записать?

Это код, который пытается написать изображение:

'use strict'

const Fs = require('fs')  
const Path = require('path')  
const Axios = require('axios')

async function downloadImage () {  
    const url = 'https://unsplash.com/photos/AaEQmoufHLk/download?force=true'
    const path = Path.resolve(__dirname, 'images', 'code.jpg')
    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)
      writer.on('error', reject)
    })
  }

  downloadImage()   

1 Ответ

1 голос
/ 27 марта 2020

Это, вероятно, потому что этот каталог /home/ole/Temp/image/images не существует или у вас нет надлежащих разрешений для него.

fs.createWriteStream() не создаст каталог для вас. Это создаст файл, но не каталог.

...