浏览代码

fix: 批量下载 对压缩zip可能出现的报错问题进行捕抓处理

lanjianrong 4 年之前
父节点
当前提交
cf1544be9d
共有 3 个文件被更改,包括 11 次插入13 次删除
  1. 3 5
      app/service/change_att.js
  2. 3 4
      app/service/material_file.js
  3. 5 4
      app/service/stage_att.js

+ 3 - 5
app/service/change_att.js

@@ -88,7 +88,7 @@ module.exports = app => {
             });
             const [sql, sqlParam] = this.sqlBuilder.build(this.tableName);
             const files = await this.db.query(sql, sqlParam);
-            return new Promise(resolve => {
+            return new Promise((resolve, reject) => {
                 // 每次开一个新的archiver
                 const ziparchiver = archiver('zip');
                 const outputPath = fs.createWriteStream(path.resolve(this.app.baseDir, zipPath));
@@ -99,18 +99,16 @@ module.exports = app => {
 
                 // 存档警告
                 ziparchiver.on('warning', function(err) {
-                    console.log(err);
                     if (err.code === 'ENOENT') {
                         console.warn('stat故障和其他非阻塞错误');
-                    } else {
-                        throw err;
                     }
+                    reject(err);
                 });
 
                 // 存档出错
                 ziparchiver.on('error', function(err) {
                     console.log(err);
-                    throw err;
+                    reject(err);
                 });
                 ziparchiver.finalize();
                 outputPath.on('close', () => {

+ 3 - 4
app/service/material_file.js

@@ -89,7 +89,7 @@ module.exports = app => {
             // const paths = files.map(item => {
             //     return { name: item.filename + item.fileext, path: item.filepath }
             // })
-            return new Promise(resolve => {
+            return new Promise((resolve, reject) => {
                 // 每次开一个新的archiver
                 const ziparchiver = archiver('zip');
                 const outputPath = fs.createWriteStream(path.resolve(this.app.baseDir, zipPath));
@@ -102,15 +102,14 @@ module.exports = app => {
                 ziparchiver.on('warning', function(err) {
                     if (err.code === 'ENOENT') {
                         console.warn('stat故障和其他非阻塞错误');
-                    } else {
-                        throw err;
                     }
+                    reject(err);
                 });
 
                 // 存档出错
                 ziparchiver.on('error', function(err) {
                     console.log(err);
-                    throw err;
+                    reject(err);
                 });
                 ziparchiver.finalize();
                 outputPath.on('close', () => {

+ 5 - 4
app/service/stage_att.js

@@ -109,7 +109,7 @@ module.exports = app => {
             // const paths = files.map(item => {
             //     return { name: item.filename + item.fileext, path: item.filepath }
             // })
-            return new Promise(resolve => {
+            return new Promise((resolve, reject) => {
                 // 每次开一个新的archiver
                 const ziparchiver = archiver('zip');
                 const outputPath = fs.createWriteStream(path.resolve(this.app.baseDir, zipPath));
@@ -122,16 +122,17 @@ module.exports = app => {
                 ziparchiver.on('warning', function(err) {
                     if (err.code === 'ENOENT') {
                         console.warn('stat故障和其他非阻塞错误');
-                    } else {
-                        throw err;
                     }
+                    reject(err);
+
                 });
 
                 // 存档出错
                 ziparchiver.on('error', function(err) {
                     console.log(err);
-                    throw err;
+                    reject(err);
                 });
+
                 ziparchiver.finalize();
                 outputPath.on('close', () => {
                     resolve(ziparchiver.pointer());