diff --git a/cloudcmd.js b/cloudcmd.js index 84726a20..95baa044 100644 --- a/cloudcmd.js +++ b/cloudcmd.js @@ -235,12 +235,14 @@ } else if (isFS) { name = Util.rmStrOnce(name, CloudFunc.FS) || main.SLASH; - flop.read(name, function(error, data, isFile) { - if (error) - main.sendError(p, error); - else if (isFile) { + flop.read(name, function(error, data) { + var isFile = error.code === 'ENOTDIR'; + + if (isFile) { p.name = name; main.sendFile(p); + } else if (error) { + main.sendError(p, error); } else readIndex(data, function(error, data) { var NOT_LOG = true; diff --git a/lib/server/rest.js b/lib/server/rest.js index 88485d5f..0e336c0e 100644 --- a/lib/server/rest.js +++ b/lib/server/rest.js @@ -140,15 +140,16 @@ switch (p.request.method) { case 'GET': - onFSGet(query, p.name, function(error, data, isFile) { + onFSGet(query, p.name, function(error, data) { var str, - isStr = Util.isString(data); + isStr = Util.isString(data); - if (error) - sendError(params, error); - else if (isFile) - main.sendFile(p); - else { + if (error) { + if (error.code === 'ENOTDIR') + main.sendFile(p); + else + sendError(params, error); + } else { p.name += '.json'; p.query = query; @@ -390,7 +391,7 @@ function copyFiles(files, callbackProcess, callback) { var names = files.names, isFunc = Util.isFunction(callbackProcess), - processFunc = names ? flop.copy : fs.rename, + processFunc = names ? flop.cp : fs.rename, copy = function() { var isLast, name, process,