Javascript 当axios收到403错误时,如何阻止writestream创建文件
我正在使用axios下载图像并在本地保存。我从下面的答案中得出了一个答案,这个答案对于较大的图片非常有用,以确保它们在编写之前已完全下载 但是,一些图像URL返回403错误。我仍然得到一个图像文件创建这些虽然是一个空文件。我如何调整代码,以便get请求收到403错误时不会尝试写入任何内容Javascript 当axios收到403错误时,如何阻止writestream创建文件,javascript,node.js,error-handling,axios,createwritestream,Javascript,Node.js,Error Handling,Axios,Createwritestream,我正在使用axios下载图像并在本地保存。我从下面的答案中得出了一个答案,这个答案对于较大的图片非常有用,以确保它们在编写之前已完全下载 但是,一些图像URL返回403错误。我仍然得到一个图像文件创建这些虽然是一个空文件。我如何调整代码,以便get请求收到403错误时不会尝试写入任何内容 export async function downloadFile(fileUrl: string, outputLocationPath: string) { const writer = createWr
export async function downloadFile(fileUrl: string, outputLocationPath: string) {
const writer = createWriteStream(outputLocationPath);
return Axios({
method: 'get',
url: fileUrl,
responseType: 'stream',
}).then(response => {
//ensure that the user can call `then()` only when the file has
//been downloaded entirely.
return new Promise((resolve, reject) => {
response.data.pipe(writer);
let error = null;
writer.on('error', err => {
error = err;
writer.close();
reject(err);
});
writer.on('close', () => {
if (!error) {
resolve(true);
}
//no need to call the reject here, as it will have been called in the
//'error' stream;
});
});
});
}响应代码应在response.status中可用,然后您可以检查并有条件拒绝承诺。很抱歉延迟回复,感谢您的回复!我尝试获取响应状态并将其作为测试输出到控制台。200个状态正在打印状态代码,但403个状态未打印。我将重新访问我的代码:)