Знаю, возможно, вопрос звучит немного непонятно, поэтому:
Есть следующий фрагмент кода js, написанный в node js файле, обрабатывающем url-запросы:
var express = require('express');
var app = express();
app.set('view engine', 'ejs');
const pages = {
"welcome":{},
"i":{"some_id":{"posts":{"some_id"},
"questions":{"some_id"},
"friends":{},
"subscribers":{},
"storys":{},
"files":{},
"books":{},
"music":{},
"videos":{}
},
},
"main":{}
};
app.listen(80);
Это объект pages, содержащий разветвляющиеся существующие url-пути (для удобства и быстроты) в лице объектов, но мне нужна функция-преобразователь объекта pages в массив с перечисленными сверху вниз (без ветвлений) возможными путями на сайте. Т.е.:
function magic(){
some code here
}
const pages = {
"main"={
"p1"={},
"p2"={},
"p3"={}
},
"somepage"={},
"sounds"={
"s1"={},
"s2"={},
"s3"={}
}
};
var lines = magic(pages);
console.log(lines);
=====> [/main/p1,
/main/p2,
/main/p3,
/sonepage/,
/sounds/s1,
/sounds/s2,
/sounds/s3]
Позже эти пути из массива, сравниваясь с запросами клиента, будут давать какой-то retern для клиента (страницу или 404). Я понимаю, что реализовать подобное нужно через циклы и их функции, но мои решения КРАЙНЕ кривые и нечитабельные. Пожалуйста, подскажите, как это сделать?
Если нужна еще какая-то информация, скажите, я ей постараюсь поделиться