Javascript 当axios收到403错误时,如何阻止writestream创建文件

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

我正在使用axios下载图像并在本地保存。我从下面的答案中得出了一个答案,这个答案对于较大的图片非常有用,以确保它们在编写之前已完全下载

但是,一些图像URL返回403错误。我仍然得到一个图像文件创建这些虽然是一个空文件。我如何调整代码,以便get请求收到403错误时不会尝试写入任何内容

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个状态未打印。我将重新访问我的代码:)