Я совершенно новичок в node- и expressJS.Я пытался настроить веб-сайт, используя node
и expressjs
.Создание сервера было явно не ракетостроением, поэтому это было сделано, но в настоящее время я пытаюсь понять, как можно достичь контроллера страницы, как я это делал бы в PHP
.
(в PHP), обычно я создаюпапка, которая содержит все страницы, которые должны отображаться в основном контейнере, когда эта конкретная страница запрашивается параметром /?page=
, изменяются две разные переменные, title
и page
.
<?php
require('connect.php');
$pages = array(
"home" => array("title" => "Home", "fontIcon" => "fas fa-home"),
"accounts" => array("title" => "Accounts", "fontIcon" => "fas fa-key"),
"players" => array("title" => "Players", "fontIcon" => "fas fa-users"),
"posts" => array("title" => "Posts", "fontIcon" => "fas fa-newspaper"),
"polls" => array("title" => "Polls", "fontIcon" => "fas fa-poll"),
"shop" => array("title" => "Shop Items", "fontIcon" => "fas fa-shopping-cart"),
"bans" => array("title" => "Banishments", "fontIcon" => "fas fa-user-slash")
);
// Check if (/?p=) parameter is set
if(!isset($_REQUEST['p'])){
$page = "home";
$title = $pages["home"];
} else {
// See if requested page exists
if(array_key_exists($_REQUEST['p'], $pages)){
// iterate over pages array
foreach ($pages as $p => $t) {
// set page and title
if($_REQUEST['p'] === $p){
$page = $p;
$title = $t;
}
}
// use default page & title if requested page doesnt exist in array
} else {
$page = "home";
$title = $pages["home"];
}
}
// set path for requested page
$page = "pages/".$page.".php";
?>
Однако в руководствах по expressJS я не смог найти такой код, чтобы выполнить то, что я описал выше.Авторы показывают только простые примеры, такие как приведенный ниже код, который, кажется, не является эффективным способом управления страницами.
app.get('/', function(req, res){
// ... bla bla
});
app.get('/contact', function(req, res){
// ... bla bla
});
app.get('/about', function(req, res){
// ... bla bla
});
Так что в основном я пытаюсь достичь чего-то вроде следующегоструктура в node & expressJS:
Главная страница, на которой будет реализован контроллер страниц, и отображаемые страницы будут храниться в отдельном каталоге, где каждая страница будет иметь уникальный доступ по запросу URL.
_NodeExressAPP_
|
|__ pages/__page__.ejs
|
|__ backend/__page__.js
|
|__ views / index.ejs (main page)
|
|__ pageController.js
|
|_ server.js (include pageController)
Кажется, что express / node не позволяет мне объединять файлы, как это делает php, и поэтому я думаю, что каждый вынужден создавать отдельные, отдельные HTML-документы для каждого представления ... и это то, что беспокоит меня больше всего.Я не хочу создавать весь HTML-документ заново или копировать и вставлять его в новый файл, чтобы иметь другое представление.Я хочу объединить запрошенную страницу в index.ejs (корневой файл)