static.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. 'use strict'
  2. //TODO Rewrite
  3. var Static = {
  4. load:function(assetFile,req,res){
  5. let ext = Path.extname(assetFile);
  6. if(!ext||ext==''){
  7. res.writeHead(404, {'Content-Type': 'text/html'});
  8. res.end();
  9. return;
  10. }
  11. if(ext.match(/png|jpg|jpeg|gif/)){
  12. IMAGE.load(URL.parse(assetFile,true).pathname,ext,req,res);
  13. }else if(FILE.existsSync(assetFile)){
  14. var data;
  15. if(ext.match(/txt|js|css|html|json/)){
  16. try{
  17. data = FILE.readFileSync(assetFile,'utf-8');
  18. }catch(err){
  19. res.writeHead(404, {'Content-Type': 'text/html'});
  20. res.end();
  21. return false;
  22. }
  23. if(ext.match(/json/)){
  24. res.writeHead(200, { "Content-Type": MIME.lookup(ext)+';charset=utf-8'});
  25. res.end(data,'utf-8');
  26. }else{
  27. res.writeHead(200, { "Content-Type": MIME.lookup(ext)+';charset=utf-8','Content-Encoding':'gzip'});
  28. res.end(data,'utf-8');
  29. }
  30. //console.log(query)
  31. }else if(ext.match(/json/)){
  32. }else{
  33. try{
  34. data = FILE.readFileSync(assetFile,'binary');
  35. res.writeHead(200, { "Content-Type": MIME.lookup(ext),"Access-Control-Allow-Origin":"*"});
  36. res.end(data,'binary');
  37. }catch(err){
  38. res.writeHead(404, {'Content-Type': 'text/html'});
  39. res.end();
  40. }
  41. }
  42. }else{
  43. res.writeHead(404, {'Content-Type': 'text/html'});
  44. res.end();
  45. }
  46. }
  47. }
  48. module.exports=Static;