diff --git a/lib/server/rest.js b/lib/server/rest.js index 9c96f9ae..7f7181df 100644 --- a/lib/server/rest.js +++ b/lib/server/rest.js @@ -92,11 +92,11 @@ } function onFS(pParams){ - var lWriteStream, lSize, + var p, lWriteStream, lSize, lQuery, lRet = main.checkParams(pParams); if(lRet){ - var p = pParams, - lQuery = main.getQuery(p.request); + p = pParams, + lQuery = main.getQuery(p.request); p.name = Util.removeStrOneTime(p.name, CloudFunc.FS) || '/'; switch(p.request.method){ @@ -148,14 +148,19 @@ if (pError) main.sendError(pParams, pError); else { - lDiff = diff.applyPatch(lStr, pPatch); - - fs.writeFile(p.name, lDiff, function(){ - if (pError) - main.sendError(pParams, pError); - else - main.sendResponse(pParams, 'writed: ' + p.name); + var lRet = Util.tryCatchLog(function(){ + lDiff = diff.applyPatch(lStr, pPatch); }); + + if (lDiff && !lRet) + fs.writeFile(p.name, lDiff, function(){ + if (pError) + main.sendError(pParams, pError); + else + main.sendResponse(pParams, 'writed: ' + p.name); + }); + else + main.sendError(pParams, lRet || lDiff); } }); });