obcon-scada / app /include /obconObject.js
chanmin0723's picture
Initial obcon SCADA deploy
e4bf523
Raw
History Blame Contribute Delete
4.13 kB
'use strict'
/**
* 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;