diff --git a/src/router.js b/src/router.js index 9c9e53731d..986831b829 100644 --- a/src/router.js +++ b/src/router.js @@ -19,16 +19,29 @@ class Router { } call (callid, name, fn, args) { - servicesList[name][fn](args, (error, data) => { - var response = { - id: callid, - type: 'reply', - scope: name, - result: data, - error: error + try { + servicesList[name][fn](args, (error, data) => { + var response = { + id: callid, + type: 'reply', + scope: name, + result: data, + error: error + } + this.websocket.send(JSON.stringify(response)) + }) + } catch (e) { + var msg = 'Unexpected Error ' + e.message + console.log('\x1b[31m%s\x1b[0m', '[ERR] ' + msg) + if (this.websocket) { + this.websocket.send(JSON.stringify({ + id: callid, + type: 'reply', + scope: name, + error: msg + })) } - this.websocket.send(JSON.stringify(response)) - }) + } } } diff --git a/src/services/sharedFolder.js b/src/services/sharedFolder.js index da3b96491b..831d2a2bd7 100644 --- a/src/services/sharedFolder.js +++ b/src/services/sharedFolder.js @@ -12,7 +12,11 @@ module.exports = { }, list: function (args, cb) { - cb(null, utils.walkSync(this.sharedFolder, {}, this.sharedFolder)) + try { + cb(null, utils.walkSync(this.sharedFolder, {}, this.sharedFolder)) + } catch (e) { + cb(e.message) + } }, resolveDirectory: function (args, cb) { @@ -20,12 +24,15 @@ module.exports = { var path = utils.absolutePath(args.path, this.sharedFolder) cb(null, utils.resolveDirectory(path, this.sharedFolder)) } catch (e) { - cb(e) + cb(e.message) } }, get: function (args, cb) { var path = utils.absolutePath(args.path, this.sharedFolder) + if (!fs.existsSync(path)) { + return cb('File not found ' + path) + } if (!isRealPath(path, cb)) return isbinaryfile(path, (error, isBinary) => { if (error) console.log(error) @@ -57,6 +64,9 @@ module.exports = { rename: function (args, cb) { var oldpath = utils.absolutePath(args.oldPath, this.sharedFolder) + if (!fs.existsSync(oldpath)) { + return cb('File not found ' + oldpath) + } var newpath = utils.absolutePath(args.newPath, this.sharedFolder) if (!isRealPath(oldpath, cb)) return fs.move(oldpath, newpath, (error, data) => { @@ -67,6 +77,9 @@ module.exports = { remove: function (args, cb) { var path = utils.absolutePath(args.path, this.sharedFolder) + if (!fs.existsSync(path)) { + return cb('File not found ' + path) + } if (!isRealPath(path, cb)) return fs.remove(path, (error, data) => { if (error) console.log(error)