Я работаю над электронным приложением, которое пытается загрузить фотографию из unsplash API и установить ее в качестве обоев. Когда я вызываю API, я получаю статус 200 OK и получаю URL-адрес для загрузки, но при попытке загрузить фотографию с помощью метода axios stream я получаю следующую ошибку:
UnhandledPromiseRejectionWarning: TypeError [ERR_INVALID_ARG_TYPE]:
Аргумент "url" должен иметь тип string. Полученный тип не определен
это код функции:
ipcMain.on("getRandomWallpaper", async event => {
const randomApi = `${apiGateway}/?client_id=${unsplashKey}`;
const request = await axios({
method: "get",
url: randomApi
});
if (request.status === 200) {
const downloadUrl = request.data.links.download;
const imagePath = "./images";
const download_image = async (downloadUrl, imagePath) => {
await axios({
downloadUrl,
responseType: "stream"
}).then(
response =>
new Promise((resolve, reject) => {
response.data
.pipe(fs.createWriteStream(imagePath))
.on("finish", () => resolve())
.on("error", e => reject(e));
})
);
};
download_image(downloadUrl, imagePath);
} else {
const status = request.status;
console.error(`${status}: \n Something went wrong...`);
}
});
Когда я попытался console.log параметр downloadUrl внутри функции, он напечатал значение. Также я сделал
console.log(typeoff(downloadUrl))
и это печатная строка.
Я надеюсь, что вы можете помочь мне,
заранее спасибо.