diff --git a/сервер.js b/сервер.js new file mode 100644 index 0000000..793a447 --- /dev/null +++ b/сервер.js @@ -0,0 +1,62 @@ +const fs = require("fs"); +const http = require("http"); +const path = require("path"); + +var jsonUpdates = {}; + +const srv = http.createServer(process); +srv.listen(8000); +fs.watch(__dirname, trackJSONUpdates); + +function process(req, res) +{ + var fileName = "." + decodeURI(req.url); + if (fileName == "./") + { + fileName = "./index.html"; + } + else if (fileName == "./json.js") + { + const content = Object.keys(jsonUpdates).sort().join("\n"); + jsonUpdates = {}; + res.writeHead(200); + res.end(content, "utf-8"); + return; + } +console.debug("fileName:", fileName); + const ext = path.extname(fileName); + var contentType = "text/html"; + switch (ext) + { + case ".js": + contentType = "text/javascript"; + break; + case "png": + contentType = "image/png"; + break; + case "jpg": + contentType = "image/jpg"; + break; + } + fs.readFile(fileName, function(err, content) { + if (err) + { + res.writeHead(500); + res.end(err.code); + return; + } + res.writeHead(200, { "Content-Type": contentType }); + res.end(content, "utf-8"); + }); +} + +function trackJSONUpdates(eventName, fileName) +{ + if (!fileName.endsWith("json.js")) + { + return; + } + jsonUpdates[fileName] = true; +console.debug("fileName", fileName); +} +