Skip to content

Instantly share code, notes, and snippets.

@shimondoodkin
Created July 10, 2010 14:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save shimondoodkin/470732 to your computer and use it in GitHub Desktop.
Save shimondoodkin/470732 to your computer and use it in GitHub Desktop.
/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