diff options
| -rwxr-xr-x | webserver.js | 21 | 
1 files changed, 15 insertions, 6 deletions
| diff --git a/webserver.js b/webserver.js index 84864cd..3e18b4d 100755 --- a/webserver.js +++ b/webserver.js @@ -7,6 +7,7 @@ var app=require("express")(),      url=require("url"),      fs=require("fs"),      util=require("util"), +    node_path=require("path"),      bodyParser=require("body-parser"),      basicAuth=require("basic-auth"); @@ -61,12 +62,20 @@ function requestFile(req,res,path){  	var stats=fs.statSync(fname);  	if(stats.isFile())res.sendFile(fname);  	else if(stats.isDirectory()){ -		var items=fs.readdirSync(fname) -		            .filter(function(f){return f[0]!=".";}) -		            .map(function(f){ -		            	if(fs.statSync(fname+"/"+f).isDirectory())return f+"/"; -		            	else return f; -		            }); +		var items=fs +			.readdirSync(fname) +			.filter(function(f){return f[0]!=".";}) +			.map(function(f){ +				try { +					if(fs.statSync(node_path.join(fname,f)).isDirectory())return f+"/"; +					else return f; +				} catch(e){ +					return null; +				} +			}) +			.filter(function(f){ +				return f!==null; +			});  		res.send(  			String(fs.readFileSync(cmn.rootdir+"/web_files/dirlisting.html"))  			.replace("<!--DIRDIR-->",path) | 
