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; } })();