Отправка запроса GET / POST в axios для получения BLOB-объекта в приложении React / Express - PullRequest
0 голосов
/ 24 декабря 2018

У меня есть приложение youtubeVideos Downloader, и я должен отправить запрос на получение (с URl), чтобы загрузить видео в приложении реагирования / экспресса. Я не совсем понимаю, что использовать следует ли мне использовать GET или POST, если я использую GETЯ должен использовать параметры запроса, которые я не люблю использовать, так как мне приходится выполнять дополнительную работу, чтобы сделать ввод URL-адресов пользователями, которые я должен экранировать "?"и я подумал об использовании Post с req.body.url, чтобы потом использовать его в своем обработчике маршрута.Мне нужна помощь, куда идти?Мой файл index.js в экспрессе:

app.post('/api/getmevideo', async (req, res) => {



    try {
        const videoURL = req.body.url;
        const videoName = await downloadVideoAsync(videoURL);
        const videoPath = path.join(__dirname + `/videos/${videoName}.mp4`);
        res.sendFile(videoPath, function() {
            fs.unlinkSync(videoPath);
        });
    }
    catch(ex) {
        res.send({
            message : "something went wrong"
        })
    }



  });

Мой код Axios в App.js в React:

downloadHandler() {
         if(this.state.inputText !== '') {
                axios({
                        url: '/api/getmevideo',
                        method: 'POST',
                        responseType: 'blob', // important
                    }, { url : this.state.inputText }).then((response) => {
                            const url = window.URL.createObjectURL(new Blob([response.data]));
                            const link = document.createElement('a');
                            link.href = url;
                             link.setAttribute('download', 'video.mp4'); 
                            document.body.appendChild(link);
                            link.click();
                        });
                    }
    }

Спасибо!

...