Created
July 10, 2010 14:14
-
-
Save shimondoodkin/470732 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/var/www/nodejs-mongodb-app/cachedfiles_page.js:282 | |
var buf=new Buffer(data,'utf8'); | |
^ | |
TypeError: Bad argument | |
at /var/www/nodejs-mongodb-app/cachedfiles_page.js:282:18 | |
at fs:83:13 | |
at node.js:255:9 | |
var fs = require('fs'); // allaws to open files | |
var sys=require('sys'); | |
var Buffer=require('buffer').Buffer; | |
function recource_dir(parse_file_list_dirname,addcallback,finishcallback) | |
{ | |
var parse_file_list1 = function(dir, files) | |
{ | |
for (var i=0;i<files.length;i++) | |
{ | |
var file = dir+'/'+files[i]; | |
(function() | |
{ | |
var file_on_callback = file; | |
//sys.puts('file assigned: '+ file_on_callback); | |
fs.stat(file_on_callback, | |
function(err,stats) | |
{ | |
//sys.puts('stats returned: '+ file); | |
if (err) | |
{ | |
// do nothing | |
// sometimes linked files are missing | |
//sys.puts('auto restart - cannot read file1 : '+ file_on_callback); | |
} | |
else | |
{ | |
if (stats.isDirectory()) | |
fs.readdir(file_on_callback,function(err,files){ | |
if (err) | |
{ | |
// do nothing | |
// sometimes linked files are missing | |
//sys.puts('auto restart - cannot read file2 : '+ file_on_callback); | |
} | |
else | |
parse_file_list1(file_on_callback, files); | |
}); | |
else if (stats.isFile() ) | |
{ | |
addcallback(file_on_callback); | |
//eval("f= function(){restart_server('"+file_on_callback+"');};");fs.watchFile(file_on_callback, f); //probably may consume resources , but also tells whitch file | |
//fs.watchFile(file_on_callback, restart_server); //this one consumes less resiurces | |
} | |
} | |
}); | |
} | |
)(); // This creates and executes a new function with its own scope. | |
} | |
}; | |
fs.readdir(parse_file_list_dirname,function(err,files) | |
{ | |
if (err) | |
{ | |
// do nothing | |
// sometimes linked files are missing | |
//sys.puts('auto restart -cannot read file3: '+ parse_file_list_dirname); | |
} | |
else | |
parse_file_list1(parse_file_list_dirname, files); | |
}); | |
if(finishcallback)finishcallback(); | |
} | |
this.contentTypes = { // types from node paperboy | |
/* | |
"aiff": "audio/x-aiff", | |
"arj": "application/x-arj-compressed", | |
"asf": "video/x-ms-asf", | |
"asx": "video/x-ms-asx", | |
"au": "audio/ulaw", | |
"avi": "video/x-msvideo", | |
"bcpio": "application/x-bcpio", | |
"ccad": "application/clariscad", | |
"cod": "application/vnd.rim.cod", | |
"com": "application/x-msdos-program", | |
"cpio": "application/x-cpio", | |
"cpt": "application/mac-compactpro", | |
"csh": "application/x-csh", | |
"css": "text/css", | |
"deb": "application/x-debian-package", | |
"dl": "video/dl", | |
"doc": "application/msword", | |
"drw": "application/drafting", | |
"dvi": "application/x-dvi", | |
"dwg": "application/acad", | |
"dxf": "application/dxf", | |
"dxr": "application/x-director", | |
"etx": "text/x-setext", | |
"ez": "application/andrew-inset", | |
"fli": "video/x-fli", | |
"flv": "video/x-flv", | |
*/ | |
"gif": "image/gif", | |
/* | |
"gl": "video/gl", | |
"gtar": "application/x-gtar", | |
*/ | |
"gz": "application/x-gzip", | |
/* | |
"hdf": "application/x-hdf", | |
"hqx": "application/mac-binhex40", | |
*/ | |
"html": "text/html", | |
/* | |
"ice": "x-conference/x-cooltalk", | |
"ief": "image/ief", | |
"igs": "model/iges", | |
"ips": "application/x-ipscript", | |
"ipx": "application/x-ipix", | |
"jad": "text/vnd.sun.j2me.app-descriptor", | |
"jar": "application/java-archive", | |
"jpeg": "image/jpeg", | |
*/ | |
"jpg": "image/jpeg", | |
"js": "text/javascript", | |
"json": "application/json", | |
/* | |
"latex": "application/x-latex", | |
"lsp": "application/x-lisp", | |
"lzh": "application/octet-stream", | |
"m": "text/plain", | |
"m3u": "audio/x-mpegurl", | |
"man": "application/x-troff-man", | |
"me": "application/x-troff-me", | |
"midi": "audio/midi", | |
"mif": "application/x-mif", | |
"mime": "www/mime", | |
"movie": "video/x-sgi-movie", | |
"mp4": "video/mp4", | |
"mpg": "video/mpeg", | |
"mpga": "audio/mpeg", | |
"ms": "application/x-troff-ms", | |
"nc": "application/x-netcdf", | |
"oda": "application/oda", | |
"ogm": "application/ogg", | |
"pbm": "image/x-portable-bitmap", | |
"pdf": "application/pdf", | |
"pgm": "image/x-portable-graymap", | |
"pgn": "application/x-chess-pgn", | |
"pgp": "application/pgp", | |
"pm": "application/x-perl", | |
*/ | |
"png": "image/png", | |
/* | |
"pnm": "image/x-portable-anymap", | |
"ppm": "image/x-portable-pixmap", | |
"ppz": "application/vnd.ms-powerpoint", | |
"pre": "application/x-freelance", | |
"prt": "application/pro_eng", | |
"ps": "application/postscript", | |
"qt": "video/quicktime", | |
"ra": "audio/x-realaudio", | |
"rar": "application/x-rar-compressed", | |
"ras": "image/x-cmu-raster", | |
"rgb": "image/x-rgb", | |
"rm": "audio/x-pn-realaudio", | |
"rpm": "audio/x-pn-realaudio-plugin", | |
"rtf": "text/rtf", | |
"rtx": "text/richtext", | |
"scm": "application/x-lotusscreencam", | |
"set": "application/set", | |
"sgml": "text/sgml", | |
"sh": "application/x-sh", | |
"shar": "application/x-shar", | |
"silo": "model/mesh", | |
"sit": "application/x-stuffit", | |
"skt": "application/x-koan", | |
"smil": "application/smil", | |
"snd": "audio/basic", | |
"sol": "application/solids", | |
"spl": "application/x-futuresplash", | |
"src": "application/x-wais-source", | |
"stl": "application/SLA", | |
"stp": "application/STEP", | |
"sv4cpio": "application/x-sv4cpio", | |
"sv4crc": "application/x-sv4crc", | |
"swf": "application/x-shockwave-flash", | |
"tar": "application/x-tar", | |
"tcl": "application/x-tcl", | |
"tex": "application/x-tex", | |
"texinfo": "application/x-texinfo", | |
"tgz": "application/x-tar-gz", | |
"tiff": "image/tiff", | |
"tr": "application/x-troff", | |
"tsi": "audio/TSP-audio", | |
"tsp": "application/dsptype", | |
"tsv": "text/tab-separated-values", | |
"txt": "text/plain", | |
"unv": "application/i-deas", | |
"ustar": "application/x-ustar", | |
"vcd": "application/x-cdlink", | |
"vda": "application/vda", | |
"vivo": "video/vnd.vivo", | |
"vrm": "x-world/x-vrml", | |
"wav": "audio/x-wav", | |
"wax": "audio/x-ms-wax", | |
"wma": "audio/x-ms-wma", | |
"wmv": "video/x-ms-wmv", | |
"wmx": "video/x-ms-wmx", | |
"wrl": "model/vrml", | |
"wvx": "video/x-ms-wvx", | |
"xbm": "image/x-xbitmap", | |
"xlw": "application/vnd.ms-excel", | |
"xml": "text/xml", | |
"xpm": "image/x-xpixmap", | |
"xwd": "image/x-xwindowdump", | |
"xyz": "chemical/x-pdb", | |
"zip": "application/zip" | |
*/ | |
}; | |
this.charsets = { | |
'text/javascript': 'UTF-8', | |
'text/html': 'UTF-8' | |
}; | |
this.page=function(app,url,dirpath) | |
{ | |
var page= | |
{ | |
pageurl:'/'+url, //prefix name | |
load_templates:{}, //dummy | |
prepeare_templates: {}, //dummy | |
prepere_data:function (page,template_name,callback){}, //dummy | |
main:function (req,res,page,callback) | |
{ | |
res.writeHead(200, {'Content-Type' : 'image/gif'}); | |
req.setEncoding('binary'); | |
res.write(gif); | |
res.end(); | |
var relative=pageurl.pathname.substring(this.pageurl.length+1,pageurl.pathname.length) | |
if(typeof this.files[relative]==='undefined') | |
{ | |
req.parsedurl.path | |
res.writeHead(404, { 'Content-Type': 'text/html'}); | |
res.write( "Not Found" ); | |
res.end(); | |
} | |
else | |
{ | |
res.writeHead(404, { 'Content-Type': 'text/html'}); | |
//req.setEncoding('binary');?? | |
res.write( this.files[relative] ); | |
res.end(); | |
} | |
return true; | |
}, | |
files: | |
{ | |
}, | |
}; | |
var dir=__dirname+'/'+dirpath,dirlen=dir.length+1; | |
recource_dir(dir, | |
function (filename) | |
{ | |
var relateive=filename.substring(dirlen,filename.length); | |
if(relateive.charAt(0)=='_') return; | |
if(relateive.charAt(0)=='.') return; | |
if(relateive.indexOf('/.')!=-1) return; | |
if(relateive.indexOf('.svn')!=-1) return; | |
if (/\.(js|html|gif|png|jpg)$/.test(relateive)) | |
{ | |
process.nextTick(function () | |
{ | |
fs.readFile(filename, function (err, data) | |
{ | |
if (err) | |
{ | |
sys.puts('error loading ' + relateive + ' ' + err); | |
err=null; | |
return; | |
} | |
else | |
{ | |
var ext=relateive.substring(relateive.lastIndexOf('.')+1,relateive.length); | |
sys.puts('loading '+relateive+' '+ext); | |
var buf=new Buffer(data,'utf8'); | |
page.files[relateive] = []; | |
page.files[relateive][0]=buf; | |
page.files[relateive][1]=ext; | |
//page.files[relateive].push(page.files[relateive].length); | |
} | |
}); | |
}); | |
} | |
} | |
, | |
function (){ | |
sys.puts(__dirname+'/deps/ckeditor'+' is loded'); | |
} | |
); | |
return page; | |
} ; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment