change static filepaths | fix whitespace bug | delete Express-API | add comments

This commit is contained in:
lucaspalomodevelop 2021-12-18 21:13:57 +01:00
parent f358a79a87
commit 81e185d5c5
9 changed files with 2180 additions and 74 deletions

View File

@ -1,26 +1,18 @@
let app = require("express")();
let path = require("path");
let express = require("express");
let app = express();
let jsste = require("../src");
const bodyParser = require("body-parser");
let path = require("path");
let fs = require("fs");
var decode = require("urldecode");
jsste.__config.set("templatePath", __dirname + "/templates");
jsste.__config.set("pagePath", __dirname + "/pages");
let fs = require("fs");
//let supertest = require("supertest");
jsste.__config.set("assetsPath", "./assets");
jsste.__config.set("stylesheets", "./styles");
// app.set("views", path.join(__dirname)); // specify the views directory
// app.set("view engine", "jsste");
// app.engine("jsste", require("../src").expressEngine());
// app.get("/:id", function (req, res) {
// if (/\w+\.[a-z]*[A-Z]*/.test(req.params.id)) {
// res.sendFile(path.join(__dirname, "pages", req.params.id));
// } else {
// let filePath = path.join(__dirname, "pages", req.params.id + ".jsste");
// let content = jsste.renderFile(filePath);
// res.send(content);
// }
// // res.send("File Not found");
// });
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
let folders = {
jsste: "pages",
@ -38,38 +30,29 @@ function getFolderFromFileEnding(filename) {
function defaultUse(req, res, next) {
let regex_isAnDotfile = /\w+\.[a-z]*[A-Z]*/;
let filePath = path.join(
__dirname,
getFolderFromFileEnding(req.url),
req.url
__dirname.toString(),
getFolderFromFileEnding(req.url).toString(),
req.url.toString()
);
if (regex_isAnDotfile.test(req.url) && !filePath.endsWith(".jsste")) {
res.sendFile(filePath);
} else if (fs.existsSync(filePath + ".jsste")) {
let content = jsste.renderFile(filePath + ".jsste");
res.send(content);
} else if (fs.lstatSync(filePath).isDirectory()) {
let content = jsste.renderFile(path.join(filePath, "index.jsste"));
let content = jsste.renderFile(decode(path.join(filePath, "index.jsste")));
res.send(content);
} else next();
}
app.get("/assets/*", (req, res) => {
console.log(req.url);
console.log(__dirname);
res.sendFile(decode(path.join(__dirname, req.url)));
});
app.use(defaultUse);
// app.use((req, res, next) => {
// if (/\w+\.[a-z]*[A-Z]*/.test(req.url)) {
// res.sendFile(path.join(__dirname, "pages", req.url));
// } else if (fs.existsSync(path.join(__dirname, "pages", req.url + ".jsste"))) {
// let filePath = path.join(__dirname, "pages", req.url + ".jsste");
// let content = jsste.renderFile(filePath);
// res.send(content);
// } else {
// next();
// }
// });
app.get("/*", defaultUse);
app.listen(8000, function () {
console.log("Example app listening on port 8000!");
console.log("Example app listening on port http://127.0.0.1:8000 !");
});

View File

@ -6,6 +6,7 @@
"a":"h1 - test",
"c":"p - test",
"b":"hallo",
"js$Date": "return Date.now() + ' is the TimeStemp';"
}
"js$Date": "return Date.now() + ' is the TimeStemp';",
"pic$bild":"",
"//":"ich bin ein kommentar"
}

View File

@ -14,6 +14,7 @@
<p><[js$TimeStemp]></p>
<p> root: <[root]></p>
<p><[Base_Date]></p>
<p>Kommentar: <[//]></p>
<script>
let c = "<[c]>";
console.log(c);

2112
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -39,7 +39,8 @@
"devDependencies": {
"assert": "^2.0.0",
"chai": "^4.3.4",
"express": "^4.17.1",
"mocha": "^8.4.0",
"express": "^4.17.1"
"urldecode": "^1.0.1"
}
}

View File

@ -2,6 +2,8 @@ let config = {};
let configvar = {
templatePath: __dirname + "\\src\\templates",
pagePath: __dirname + "\\src\\pages",
assetsPath: __dirname + "\\src\\assets",
stylesheets: __dirname + "\\src\\styles",
};
config.get = function (key) {

View File

@ -5,8 +5,8 @@ const jsonmerger = require("./jsonMerger");
//let appdir = path.join(__dirname, "..");
let app = {};
// app.__config = require("./config");
// app.config = app.__config.getConfig();
app.__config = require("./config");
app.config = app.__config.getConfig();
function escapeRegExp(string) {
return string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&");
@ -108,6 +108,7 @@ app.render = function (pagecode, templatecode) {
let value = undefined;
if (new RegExp(/\d*_([A-Z]*|[a-z])\w*_/g).test(i)) continue;
if (new RegExp(/\/\//g).test(i)) continue;
if (new RegExp(/js\$([A-Z]*|[a-z]*)\w+/g).test(i)) {
let SE = require("./scriptExecuter");
pagecode[i] = SE(pagecode[i]);
@ -125,6 +126,8 @@ app.render = function (pagecode, templatecode) {
""
);
templatecode = templatecode.replace(new RegExp(/<\[\/\/]\>/g), "");
return templatecode;
};

View File

@ -17,34 +17,34 @@ app.__config = require("./config");
app.config = app.__config.getConfig();
engine.config = app.config;
app.expressEngine = (
config = {
templatePath: "templates",
pagePath: "pages",
}
) => {
config = mergeJson.mergeJson(app.config, config);
let hasrendered = false;
return (filePath, options, callback) => {
if (!hasrendered) {
app.config.templatePath = path.join(
options.settings.views,
config.templatePath
);
app.config.pagePath = path.join(options.settings.views, config.pagePath);
hasrendered = true;
}
// define the template engine
fs.readFile(filePath, function (err, content) {
content = content.toString();
// content = mergeJson.mergeJson(JSON.parse(content), options);
// app.expressEngine = (
// config = {
// templatePath: "templates",
// pagePath: "pages",
// }
// ) => {
// config = mergeJson.mergeJson(app.config, config);
// let hasrendered = false;
// return (filePath, options, callback) => {
// if (!hasrendered) {
// app.config.templatePath = path.join(
// options.settings.views,
// config.templatePath
// );
// app.config.pagePath = path.join(options.settings.views, config.pagePath);
// hasrendered = true;
// }
// // define the template engine
// fs.readFile(filePath, function (err, content) {
// content = content.toString();
// // content = mergeJson.mergeJson(JSON.parse(content), options);
if (err) return callback(new Error(err));
// this is an extremely simple template engine
var rendered = app.render(content);
return callback(null, rendered);
});
};
};
// if (err) return callback(new Error(err));
// // this is an extremely simple template engine
// var rendered = app.render(content);
// return callback(null, rendered);
// });
// };
// };
module.exports = app;

View File

@ -1140,6 +1140,11 @@
"resolved" "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"
"version" "1.0.0"
"urldecode@^1.0.1":
"integrity" "sha1-Z1g6UffNKZBXUY08JcSQrdeDlhc="
"resolved" "https://registry.npmjs.org/urldecode/-/urldecode-1.0.1.tgz"
"version" "1.0.1"
"util@^0.12.0":
"integrity" "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw=="
"resolved" "https://registry.npmjs.org/util/-/util-0.12.4.tgz"