mirror of
https://github.com/coderaiser/cloudcmd.git
synced 2026-07-18 00:47:01 +00:00
fix(main) if file not exist - send error; sendFile: add stat, add setHeader
This commit is contained in:
parent
cbf080e19f
commit
e707ed9853
1 changed files with 33 additions and 24 deletions
|
|
@ -225,35 +225,35 @@
|
|||
* @param pGzip - данные сжаты gzip'ом
|
||||
*/
|
||||
function sendFile(pParams) {
|
||||
var name, header, lRet = checkParams(pParams);
|
||||
var header, lRet = checkParams(pParams);
|
||||
|
||||
if (lRet) {
|
||||
var p = pParams,
|
||||
lGzip = isGZIP(p.request) && p.gzip;
|
||||
|
||||
p.response.statusCode = OK;
|
||||
|
||||
header = generateHeaders({
|
||||
name : p.name,
|
||||
cache : p.cache,
|
||||
gzip : lGzip,
|
||||
query : getQuery(p.request)
|
||||
});
|
||||
|
||||
for (name in header)
|
||||
p.response.setHeader(name, header[name]);
|
||||
|
||||
pipe.create({
|
||||
from: p.name,
|
||||
write: p.response,
|
||||
zip : lGzip && !p.gziped,
|
||||
callback: function(pError) {
|
||||
var lError = pError && pError.toString();
|
||||
fs.stat(p.name, function(error, stat) {
|
||||
if (error)
|
||||
sendError(pParams, error);
|
||||
else {
|
||||
p.response.statusCode = OK;
|
||||
|
||||
if (pError) {
|
||||
p.response.statusCode = FILE_NOT_FOUND;
|
||||
p.response.end(lError);
|
||||
}
|
||||
header = generateHeaders({
|
||||
name : p.name,
|
||||
cache : p.cache,
|
||||
gzip : lGzip,
|
||||
query : getQuery(p.request)
|
||||
});
|
||||
|
||||
setHeader(header, p.response);
|
||||
|
||||
pipe.create({
|
||||
from : p.name,
|
||||
write : p.response,
|
||||
zip : lGzip && !p.gziped,
|
||||
callback: function(error) {
|
||||
sendError(pParams, error);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
@ -296,7 +296,8 @@
|
|||
p.data = pParams.data;
|
||||
}
|
||||
|
||||
p.response.writeHead(p.status || OK, lHead);
|
||||
setHeader(lHead, p.response);
|
||||
p.response.statusCode = p.status || OK;
|
||||
p.response.end(p.data);
|
||||
},
|
||||
|
||||
|
|
@ -452,4 +453,12 @@
|
|||
return lGZIP;
|
||||
}
|
||||
|
||||
function setHeader(header, response) {
|
||||
var name;
|
||||
|
||||
if (Util.isObject(header))
|
||||
for (name in header)
|
||||
response.setHeader(name, header[name]);
|
||||
}
|
||||
|
||||
})();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue