Simple image host.
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

index.js 1.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. var http = require("http");
  2. var fs = require("fs");
  3. var Api = require("./api.js");
  4. var conf = JSON.parse(fs.readFileSync("conf.json"));
  5. var files = {
  6. "/": "index.html",
  7. "/404": "404.html",
  8. "/viewer": "viewer.node.js"
  9. }
  10. //Prepare files
  11. var errs = false;
  12. Object.keys(files).forEach(function(i) {
  13. try {
  14. if (/\.node\.js$/.test(files[i]))
  15. files[i] = require("./"+conf.webroot+"/"+files[i]);
  16. else
  17. files[i] = fs.readFileSync(conf.webroot+"/"+files[i], "utf8");
  18. } catch (err) {
  19. console.log(err.toString());
  20. errs = true;
  21. }
  22. });
  23. if (errs)
  24. process.exit();
  25. //Prepare all templates
  26. var templates = {};
  27. fs.readdirSync("templates").forEach(function(f) {
  28. templates[f.replace(/\.html$/, "")] = fs.readFileSync("templates/"+f, "utf8");
  29. });
  30. function onRequest(req, res) {
  31. console.log("Request for "+req.url);
  32. var file = files[req.url];
  33. if (!file) {
  34. file = files["/404"];
  35. res.writeHead(404);
  36. }
  37. if (typeof file == "function")
  38. file(new Api(req, res, templates, conf));
  39. else
  40. res.end(file);
  41. }
  42. var server = http.createServer(onRequest);
  43. server.listen(conf.port);
  44. console.log("Listening on port "+conf.port+".");