Cleanup.
This commit is contained in:
@ -1,102 +0,0 @@
|
||||
// Uplink Gemini Server
|
||||
// Router Class
|
||||
|
||||
function selectRoute(path, routes) {
|
||||
result = -1;
|
||||
// console.log(path);
|
||||
var mPathComponents = path.split('/');
|
||||
routes.forEach((item, index) => {
|
||||
// console.log(item);
|
||||
var mitem = item.split('/');
|
||||
if((mitem.length == mPathComponents.length)) {
|
||||
if((item.indexOf(':') > 0) && (path.endsWith('/') == false)) {
|
||||
// console.log('we need parameters');
|
||||
var mmitem = item.substring(item.indexOf(':'));
|
||||
var mmpath = path.substring(item.indexOf(':'));
|
||||
var mmitemList = mmitem.split('/');
|
||||
var mmpathList = mmpath.split('/');
|
||||
if(mmitemList.length == mmpathList.length) {
|
||||
// console.log('winner is here');
|
||||
if(result == -1) result = index;
|
||||
}
|
||||
} else {
|
||||
// console.log('we do not need parameters');
|
||||
if(item == path) {
|
||||
// console.log('winnere here');
|
||||
if(result == -1) result = index;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
return result;
|
||||
}
|
||||
|
||||
module.exports = class Router {
|
||||
constructor() {
|
||||
this.routes = [];
|
||||
this.handlers = [];
|
||||
}
|
||||
|
||||
use(route, handler) {
|
||||
this.routes[this.routes.length] = route;
|
||||
this.handlers[this.handlers.length] = handler;
|
||||
this.request = undefined;
|
||||
this.response = undefined;
|
||||
}
|
||||
|
||||
set(path, request, response) {
|
||||
this.request = request;
|
||||
this.response = response;
|
||||
|
||||
/////////////////////////////////////
|
||||
// console.log(selectRoute(path, this.routes));
|
||||
|
||||
|
||||
|
||||
/////////////////////////////////////
|
||||
|
||||
var pathComponents = path.split('/');
|
||||
for (var i = 0; i < pathComponents.length; i++) {
|
||||
pathComponents[i] = '/' + pathComponents[i];
|
||||
}
|
||||
|
||||
var routes = this.routes;
|
||||
|
||||
var paths = [];
|
||||
var params = [];
|
||||
|
||||
var mindex = selectRoute(path, this.routes);
|
||||
|
||||
var routeComponents = routes[mindex].split('/');
|
||||
paths = [];
|
||||
params = [];
|
||||
|
||||
if (routeComponents.length == pathComponents.length) {
|
||||
for (var k = 0; k < routeComponents.length; k++) {
|
||||
routeComponents[k] = '/' + routeComponents[k];
|
||||
if (routeComponents[k].startsWith('/:')) {
|
||||
params.push(routeComponents[k]);
|
||||
} else {
|
||||
paths.push(routeComponents[k]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var finalParams = pathComponents.slice(paths.length);
|
||||
for (var l = 0; l < finalParams.length; l++) {
|
||||
finalParams[l] = finalParams[l].substring(1);
|
||||
}
|
||||
var myParams = {};
|
||||
for (var m = 0; m < params.length; m++) {
|
||||
eval('myParams.' + params[m].substring(2) + ' = "' + JSON.stringify(finalParams[m]).slice(1, -1) + '"');
|
||||
}
|
||||
|
||||
this.request.params = myParams;
|
||||
var mm = typeof this.handlers[mindex];
|
||||
if (mm !== 'undefined') {
|
||||
this.handlers[mindex](this.request, this.response);
|
||||
} else {
|
||||
this.response.error(51);
|
||||
}
|
||||
}
|
||||
};
|
@ -1,102 +0,0 @@
|
||||
// Uplink Gemini Server
|
||||
// Router Class
|
||||
|
||||
function selectRoute(path, routes) {
|
||||
result = -1;
|
||||
console.log(path);
|
||||
var mPathComponents = path.split('/');
|
||||
routes.forEach((item, index) => {
|
||||
console.log(item);
|
||||
var mitem = item.split('/');
|
||||
if((mitem.length == mPathComponents.length)) {
|
||||
if((item.indexOf(':') > 0) && (path.endsWith('/') == false)) {
|
||||
console.log('we need parameters');
|
||||
var mmitem = item.substring(item.indexOf(':'));
|
||||
var mmpath = path.substring(item.indexOf(':'));
|
||||
var mmitemList = mmitem.split('/');
|
||||
var mmpathList = mmpath.split('/');
|
||||
if(mmitemList.length == mmpathList.length) {
|
||||
console.log('winner is here');
|
||||
if(result == -1) result = index;
|
||||
}
|
||||
} else {
|
||||
console.log('we do not need parameters');
|
||||
if(item == path) {
|
||||
console.log('winnere here');
|
||||
if(result == -1) result = index;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
return result;
|
||||
}
|
||||
|
||||
module.exports = class Router {
|
||||
constructor() {
|
||||
this.routes = [];
|
||||
this.handlers = [];
|
||||
}
|
||||
|
||||
use(route, handler) {
|
||||
this.routes[this.routes.length] = route;
|
||||
this.handlers[this.handlers.length] = handler;
|
||||
this.request = undefined;
|
||||
this.response = undefined;
|
||||
}
|
||||
|
||||
set(path, request, response) {
|
||||
this.request = request;
|
||||
this.response = response;
|
||||
|
||||
/////////////////////////////////////
|
||||
console.log(selectRoute(path, this.routes));
|
||||
|
||||
|
||||
|
||||
/////////////////////////////////////
|
||||
|
||||
var pathComponents = path.split('/');
|
||||
for (var i = 0; i < pathComponents.length; i++) {
|
||||
pathComponents[i] = '/' + pathComponents[i];
|
||||
}
|
||||
|
||||
var routes = this.routes;
|
||||
|
||||
var paths = [];
|
||||
var params = [];
|
||||
|
||||
var mindex = selectRoute(path, this.routes);
|
||||
|
||||
var routeComponents = routes[mindex].split('/');
|
||||
paths = [];
|
||||
params = [];
|
||||
|
||||
if (routeComponents.length == pathComponents.length) {
|
||||
for (var k = 0; k < routeComponents.length; k++) {
|
||||
routeComponents[k] = '/' + routeComponents[k];
|
||||
if (routeComponents[k].startsWith('/:')) {
|
||||
params.push(routeComponents[k]);
|
||||
} else {
|
||||
paths.push(routeComponents[k]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var finalParams = pathComponents.slice(paths.length);
|
||||
for (var l = 0; l < finalParams.length; l++) {
|
||||
finalParams[l] = finalParams[l].substring(1);
|
||||
}
|
||||
var myParams = {};
|
||||
for (var m = 0; m < params.length; m++) {
|
||||
eval('myParams.' + params[m].substring(2) + ' = "' + JSON.stringify(finalParams[m]).slice(1, -1) + '"');
|
||||
}
|
||||
|
||||
this.request.params = myParams;
|
||||
var mm = typeof this.handlers[mindex];
|
||||
if (mm !== 'undefined') {
|
||||
this.handlers[mindex](this.request, this.response);
|
||||
} else {
|
||||
this.response.error(51);
|
||||
}
|
||||
}
|
||||
};
|
Reference in New Issue
Block a user