Невозможно прочитать свойство 'pipe' из undefined в узле js - PullRequest
0 голосов
/ 30 августа 2018

Я пытаюсь загрузить изображение, используя axios и fs Когда я запускаю его с помощью узла app.js, он дает мне ошибку, говоря трубу не может быть определено

"Ошибка типа: невозможно прочитать свойство 'pipe' из неопределенного".

const axios = require('axios');
const fs = require('fs');
const Path = require('path');


async function download()
{
    const url ='https://www.google.co.in/imgres'
    const path = Path.resolve(__dirname,'files','image1.jpg')

    const response = axios
    (
        {
        method : 'GET',
        url:url,

        responseType:'stream'
        }
    )

    response.data.pipe(fs.createWriteStream(path))
        return new Promise((resolve,reject)=>{
            response.data.on('end',()=>{
            resolve()
        })

        response.data.on('error',err=>{
            reject(err);
        })
    }).catch();
}

download().then(()=>{
    console.log('download finished');
})

1 Ответ

0 голосов
/ 30 августа 2018

Вам не нужно ждать, пока завершится обещание Axios?

См. Axios API

...
    const response = axios
    (
        {
        method : 'GET',
        url:url,

        responseType:'stream'
        }
    ).then(function(response) {

        response.data.pipe(fs.createWriteStream(path))
            return new Promise((resolve,reject)=>{
                response.data.on('end',()=>{
                resolve()
            })
...

Я полагаю, что в зависимости от уровня сценария вы можете сделать это с помощью async / await, но я не эксперт Axios.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...