From 728f0b69ea2771c668762aea22473c2be19d1763 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Thu, 22 Nov 2012 07:57:27 -0500 Subject: [PATCH] minor changes --- lib/server/main.js | 38 ++++++++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/lib/server/main.js b/lib/server/main.js index cc64f3e7..34556c64 100644 --- a/lib/server/main.js +++ b/lib/server/main.js @@ -7,6 +7,7 @@ Util, OK = 200, + ERROR = 404, Extensions = { '.css' : 'text/css', '.js' : 'text/javascript', @@ -163,24 +164,37 @@ * @param pGzip - данные сжаты gzip'ом */ function sendFile(pParams){ - var lName = pParams.name, + var lRet = false, + lName = pParams.name, lReq = pParams.request, lRes = pParams.response, lEnc = lReq.headers['accept-encoding'] || '', lGzip = lEnc.match(/\bgzip\b/), - - lReadStream = main.fs.createReadStream(lName, { - 'bufferSize': 4 * 1024 - }); - - lRes.writeHead(OK, generateHeaders(lName, true) ); - + lReadStream, + lExists = main.fs.exists || main.path.exists; - if (lGzip) - lReadStream = lReadStream.pipe( main.zlib.createGzip() ); - - lReadStream.pipe(lRes); + lExists(lName, function(pExist){ + lRet = pExist; + if(pExist){ + lReadStream = main.fs.createReadStream(lName, { + 'bufferSize': 4 * 1024 + }); + lRes.writeHead(OK, generateHeaders(lName, lGzip) ); + + if (lGzip) + lReadStream = lReadStream.pipe( main.zlib.createGzip() ); + + lReadStream.pipe(lRes); + } + else{ + lRes.writeHead(OK, generateHeaders('error.json', lGzip) ); + var lJson = JSON.stringify({error: 'File not Found'}); + lRes.end(lJson); + } + }); + + return lRet; } })();