Spaces:
Running
Running
| /** | |
| * Copyright (c) 2018, OBCon Inc. | |
| * All rights reserved. | |
| */ | |
| /** | |
| * @file | |
| * @copyright OBCon Inc. Korea 2018 | |
| * @author gye hyun james kim [pnuskgh@gmail.com] | |
| */ | |
| class OBConObject { | |
| constructor() { | |
| } | |
| //--- For Common | |
| loggerError(err) { | |
| //--- for Mozilla | |
| if ((err.fileName) && (err.lineNumber) && (err.columnNumber)) { | |
| logger.error(`Error: ${err.fileName} file ${err.lineNumber} line ${err.columnNumber} column`); | |
| } else { | |
| let tmpStackArray = new Error().stack.split('\n'); | |
| if (2 < tmpStackArray.length) { | |
| let tmpStr = tmpStackArray[2]; | |
| if ((-1 < tmpStr.indexOf('(')) && (-1 < tmpStr.indexOf(')'))) { | |
| tmpStr = tmpStr.substring(tmpStr.indexOf('(') + 1, tmpStr.indexOf(')')); | |
| let tmpArray = tmpStr.split(':'); | |
| if (tmpArray.length == 3) { | |
| let fileName = tmpArray[0]; | |
| let lineNumber = tmpArray[1]; | |
| let columnNumber = tmpArray[2]; | |
| fileName = fileName.replace(/\\/g, '/'); | |
| logger.error(`Error: ${fileName} file ${lineNumber} line ${columnNumber} column`); | |
| } else if (tmpArray.length == 4) { | |
| let fileName = tmpArray[0] + ':' + tmpArray[1]; | |
| let lineNumber = tmpArray[2]; | |
| let columnNumber = tmpArray[3]; | |
| fileName = fileName.replace(/\\/g, '/'); | |
| logger.error(`Error: ${fileName} file ${lineNumber} line ${columnNumber} column`); | |
| } | |
| } | |
| } | |
| } | |
| //--- for 일반적인 오류 처리 | |
| // if (err instanceof Error) { | |
| if ((err.name) && (err.message)) { logger.error(`${err.name}: ${err.message}`); } | |
| if (err.stack) { logger.error(err.stack); } | |
| // } | |
| //--- for Microsoft | |
| if (err.number) { logger.error(`Number: ${err.number}`); } | |
| if (err.description) { logger.error(`Description: ${err.description}`); } | |
| //--- for others | |
| if ((err.toSource) && (typeof err.toSource === 'function')) { logger.log(`toSource(): ${err.toSource()}`); } | |
| if ((err.toString) && (typeof err.toString === 'function')) { logger.log(`toString(): ${err.toString()}`); } | |
| logger.error('Error stringfy : ' + JSON.stringify(err)); | |
| if (err.code) { logger.error('Code : ' + err.code); } | |
| if (err.original) { logger.error('Original : ' + JSON.stringify(err['original'])); } | |
| if (err.errors) { | |
| if (typeof(err.errors) == 'array') { | |
| err.errors.forEach(function(error) { | |
| logger.error('Error array'); | |
| if (error.type) { logger.error(' Type: ' + error.type); } | |
| if (error.message) { logger.error(' Message: ' + error.message); } | |
| if (error.path) { logger.error(' Path: ' + error.path); } | |
| if (error.value) { logger.error(' Value: ' + error.value); } | |
| }); | |
| } else { | |
| logger.error('Errors : ' + JSON.stringify(err.errors)); | |
| } | |
| } | |
| } | |
| //--- For View | |
| resJson(res, code, message, data, err) { | |
| res.writeHead(200, { "Content-Type": "application/json;characterset=utf-8" }); | |
| res.write(JSON.stringify({ | |
| code: code, | |
| message: message, | |
| data: data, | |
| error: err | |
| })); | |
| res.end(); | |
| } | |
| getErrorMessage(err) { | |
| let message = 'error'; | |
| if (typeof(err.errors) == 'array') { | |
| if (0 < err.errors.length) { | |
| message = err.errors[0].message; | |
| } | |
| } else { | |
| logger.error(JSON.stringify(err.errors)); | |
| } | |
| return message; | |
| } | |
| } | |
| module.exports = OBConObject; | |