refactored

This commit is contained in:
coderaiser 2013-03-12 08:21:35 -04:00
parent 6f0568bf79
commit 018fe31128

View file

@ -12,7 +12,8 @@
ext,
path, fs, zlib, url,
OK, FILE_NOT_FOUND, MOVED_PERMANENTLY,
OK, FILE_NOT_FOUND, MOVED_PERMANENTLY = 301,
REQUEST, RESPONSE,
Config = {
server : true,
@ -24,10 +25,9 @@
exports.OK = OK = 200;
exports.FILE_NOT_FOUND = FILE_NOT_FOUND = 404;
exports.MOVED_PERMANENTLY = MOVED_PERMANENTLY = 301;
exports.REQUEST = 'request';
exports.RESPONSE = 'response';
exports.REQUEST = REQUEST = 'request';
exports.RESPONSE = RESPONSE = 'response';
/* Native Modules*/
exports.crypto = require('crypto'),
@ -175,11 +175,11 @@
* https://developers.google.com/speed/docs/best-practices/caching?hl=ru#LeverageProxyCaching
*/
function generateHeaders(pParams){
var lRet = Util.checkObjTrue(pParams, ['name']),
p = pParams;
var lRet = Util.checkObjTrue(pParams, ['name']);
if(lRet){
var lExt = Util.getExtension(p.name),
var p = pParams,
lExt = Util.getExtension(p.name),
lType = ext[lExt] || 'text/plain',
lContentEncoding = '';
@ -198,10 +198,8 @@
'Vary': 'Accept-Encoding'
};
if( !Util.strCmp(lExt, '.appcache') && exports.config.cache){
var lCacheControl = 31337 * 21;
lRet['cache-control'] = 'max-age=' + lCacheControl;
}
if( !Util.strCmp(lExt, '.appcache') && p.cache)
lRet['cache-control'] = 'max-age=' + 31337 * 21;
if(p.gzip)
lRet['content-encoding'] = 'gzip';
@ -218,37 +216,36 @@
* @param pGzip - данные сжаты gzip'ом
*/
function sendFile(pParams){
var lRet,
lName, lReq, lRes, lGziped;
var lRet = checkParams(pParams);
if(pParams){
lName = pParams.name,
lReq = pParams.request,
lRes = pParams.response;
lGziped = pParams.gziped;
}
if(lName && lRes && lReq){
var lGzip = isGZIP(lReq),
if(lRet){
var p = pParams,
lGzip = isGZIP(p.request) && p.gzip,
lReadStream = fs.createReadStream(lName, {
lReadStream = fs.createReadStream(p.name, {
'bufferSize': 4 * 1024
});
lReadStream.on('error', function(pError){
lRes.writeHead(FILE_NOT_FOUND, 'OK');
lRes.end(String(pError));
p.response.writeHead(FILE_NOT_FOUND, 'OK');
p.response.end(String(pError));
});
lRes.writeHead(OK, generateHeaders({
name : lName,
p.response.writeHead(OK, generateHeaders({
name : p.name,
gzip : lGzip,
query : getQuery(lReq)
query : getQuery(p.request)
}) );
if (lGzip && !lGziped)
lReadStream = lReadStream.pipe( zlib.createGzip() );
var lZipStream;
lReadStream.pipe(lRes);
if (lGzip && !p.gziped)
lZipStream = lReadStream.pipe( zlib.createGzip() );
else
lZipStream = lReadStream;
lZipStream.pipe(p.response);
lRet = true;
}
@ -264,8 +261,7 @@
* @param pName - имя отсылаемого файла
*/
function sendResponse(pParams, pData){
var lRet = Util.checkObjTrue(pParams,
['name', 'request', 'response']);
var lRet = checkParams(pParams);
if(lRet){
var p = pParams;
@ -309,7 +305,7 @@
*/
function redirect(pParams){
var lRet = Util.checkObjTrue(pParams,
['response']);
[RESPONSE]);
if(lRet){
var p = pParams;
@ -319,9 +315,12 @@
}
}
/**
* send error response
*/
function sendError(pParams, pError){
var lRet = Util.checkObjTrue(pParams,
['name', 'request', 'response']);
var lRet = checkParams(pParams);
if(lRet){
var p = pParams;
@ -364,7 +363,7 @@
}
function checkParams(pParams, pAdditional){
var lRet = Util.checkObjTrue( pParams, ['name', 'request', 'response'] );
var lRet = Util.checkObjTrue( pParams, ['name', REQUEST, RESPONSE] );
if(lRet && pAdditional)
lRet = Util.checkObjTrue( pParams, pAdditional);