Răsfoiți Sursa

优化图片处理相关代码,增加详细日志记录

luoshi 6 ani în urmă
părinte
comite
da1cf334ff
4 a modificat fișierele cu 42 adăugiri și 8 ștergeri
  1. 1 1
      config.json
  2. 16 0
      source/.eslintrc.json
  3. 22 7
      source/lib/image.js
  4. 3 0
      source/package.json

+ 1 - 1
config.json

@@ -39,7 +39,7 @@
         },
         {
             "name": "局域网",
-            "host": "192.168.10.141:8090",
+            "host": "localhost:8090",
             "bucketPrefix": "gx",
             "upyunDomain": ""
         }

+ 16 - 0
source/.eslintrc.json

@@ -0,0 +1,16 @@
+{
+    "env": {
+        "es6": true,
+        "node": true
+    },
+    "extends": "eslint:recommended",
+    "globals": {
+        "Atomics": "readonly",
+        "SharedArrayBuffer": "readonly"
+    },
+    "parserOptions": {
+        "ecmaVersion": 2018,
+        "sourceType": "module"
+    },
+    "rules": {}
+}

+ 22 - 7
source/lib/image.js

@@ -20,7 +20,7 @@ const gm = config.imagemagick != undefined ? require('gm').subClass({
 class executor extends EventEmitter {
 
     async readFile(file) {
-        return new Promise((resolve, reject) => {
+        return new Promise(resolve => {
             var data = []
             if (fs.existsSync(file)) {
                 let reader = readline.createInterface({
@@ -125,9 +125,12 @@ class executor extends EventEmitter {
                 }
             }
         }
+
         return new Promise((resolve, reject) => {
             imgData.write(file, error => {
                 if (error) {
+                    logger.error('add watermark error: ' + file)
+                    logger.error(error)
                     reject(error)
                 } else {
                     resolve()
@@ -169,9 +172,19 @@ class executor extends EventEmitter {
             }
             //是否需要添加分数水印
             if (watermark) {
-                await this.addWatermark(imgData, local, data, index, showMarker)
+                return this.addWatermark(imgData, local, data, index, showMarker)
             } else {
-                await fs.writeFileSync(local, imgData)
+                return new Promise((resolve, reject) => {
+                    fs.writeFile(local, imgData, err => {
+                        if (err) {
+                            logger.error('write image file error: ' + local)
+                            logger.error(err)
+                            reject(err)
+                        } else {
+                            resolve()
+                        }
+                    })
+                })
             }
         }
     }
@@ -191,7 +204,7 @@ class executor extends EventEmitter {
             let count = 0
             let pageNumber = 0
             this.emit('count', 0)
-            while (true) {
+            for (;;) {
                 pageNumber++
 
                 let array = await api.getStudents(env.examId, pageNumber, 100, true, undefined, watermark === true, watermark === true)
@@ -215,6 +228,7 @@ class executor extends EventEmitter {
             this.emit('finish')
         } catch (error) {
             logger.error('download sheet error:' + error)
+            logger.error(error)
             this.emit('error', error)
         }
     }
@@ -241,9 +255,10 @@ class executor extends EventEmitter {
                 this.emit('count', count)
             }
             this.emit('finish')
-        } catch (err) {
-            logger.error('download package error: ' + err)
-            this.emit('error', err)
+        } catch (error) {
+            logger.error('download package error: ' + error)
+            logger.error(error)
+            this.emit('error', error)
         }
     }
 }

+ 3 - 0
source/package.json

@@ -20,5 +20,8 @@
         "request": "^2.88.0",
         "requestretry": "^3.1.0",
         "thinkjs-util": ">=0.0.1"
+    },
+    "devDependencies": {
+        "eslint": "^5.16.0"
     }
 }