Лучший способ сделать динамическую маршрутизацию с Express.js (node.js)
Я пытаюсь создать простую CMS с помощью express.js, который динамически создает маршруты. Он получает JSON из базы данных, которая выглядит следующим образом:
pagesfromdb = {
home = {
paths = ['/','/home','/koti'],
render = 'home.ejs',
fi_FI = {html='Hei maailma!'},
en_US = {html='Hello World!'}
},
about = {
paths = ['/about','/tietoja'],
render = 'general.ejs',
fi_FI = {html='Tietoja'},
en_US = {html='About Us'}
}
}
и перебирает объекты, создавая маршруты следующим образом:
Object.keys(pagesfromdb).forEach(function(key) {
var page = pagesfromdb[key];
app.get(page.global.paths,function(req, res){
res.render(page.render, page[language]);
});
});
Сейчас все работает нормально. Но проблема в том, что каждый раз, когда пользователь изменяет содержимое и пути, необходимо перезапустить приложение всего узла. Я сделалt найти любые вызовы API для удаления маршрутов.
Есть ли способ безопасно удалить старые маршруты, установленные с app.get? Должен ли я даже сделать это?
Есть ли лучший способ сделать этот вид маршрутизации? Мне нравится этот метод, так как он позволяет мне использовать встроенную функцию, быстр и поддерживает регулярные выражения.
Я попытался удалить весь app.routes с app.routes = nul, но это неничего не делать, старые маршруты все еще были на месте.
Одна вещь, которая действительно удалила их, была
delete app._router.map.get;
app._router.map.get = [];
Но удаляет ли это их на самом деле, и безопасно ли их использовать, поэтому я нев конечном итоге угонять огромное количество оперативной памяти, если маршрутизатор продолжает заселяться?