"use strict"; const url = require('url'); const fs = require('fs'); global.apiSubscrubers = {}; exports.go = (req, res, postData)=> { const urlParsed = url.parse(req.url, true); urlParsed.pathname = urlParsed.pathname.replaceAll("..", ""); //let upath = urlParsed.pathname; //let uquery = urlParsed.query; try { //console.log("API=", urlParsed.pathname.substring(1, 4)); if (urlParsed.pathname.substring(1, 4)=="api") { res.setHeader('Content-Type', 'application/json'); if (fs.existsSync("."+urlParsed.pathname+".js")) { // если запрос к api let dapi = require("."+urlParsed.pathname+".js"); if (typeof postData === 'string' && postData.length>5) postData=JSON.parse(postData); try { dapi.go(req, res, postData, urlParsed); } catch (err) { res.end('{"err":"'+JSON.stringify(err)+'", "errcode":3}'); //console.log("ОШИБКА API "+JSON.stringify(err)); } } else { res.end('{"err":"api не существует", "errcode":4}'); //console.log("ОШИБКА API - не существует "); } } else { if (urlParsed.pathname=="/") urlParsed.pathname="/index.html"; // application/javascript let path="./www"+urlParsed.pathname; for (let i = path.length-1; i>0 ; i--) { if (path[i]==".") { // console.log(path.substring(i+1, path.length)); switch(path.substring(i+1, path.length)) { case 'html': res.setHeader('Content-Type', 'text/html'); break; case 'webmanifest': res.setHeader('Content-Type', 'application/json'); break; case 'js': res.setHeader('Content-Type', 'application/javascript'); break; case 'css': res.setHeader('Content-Type', 'text/css'); break; case 'png': res.setHeader('Content-Type', 'image/png'); break; case 'jpg': res.setHeader('Content-Type', 'image/jpg'); break; case 'ico': res.setHeader('Content-Type', 'image/ico'); break; case 'gif': res.setHeader('Content-Type', 'image/gif'); break; } break; } } // console.log("path",path); if (fs.existsSync(path)) { fs.createReadStream(path).pipe(res); return; } else { } } } catch (error) { res.end('{"error"='+JSON.stringify(error) +'}'); } } global.genHash=(col,str='qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM0123456789')=> { let ret=''; for (let i=0;i