Скрыть индекс. html от URL в Nodejs - PullRequest
0 голосов
/ 07 февраля 2020

Попытка скрыть слово «index» от URL, как просто example.com/ (или даже лучше без /), используя nodejs и express. Я получил его для перенаправления на / и отображения страницы на / index, но мне интересно, могу ли я удалить / index и просто показать /, однако рендеринг происходит только на / index, а не на /.

    app.get('/', function (req, res) { 
      //called on / but just redirects url to /index I do not want to duplicate the rendering code here
      res.redirect('/index') });  //to redirect / to index.html
    }
    app.get('/:slug', function(req, res){
      //renders the page here but only called if /index in url not on /
    }

ОБНОВЛЕНИЕ: Спасибо. На самом деле я пытаюсь сделать опцию: slug необязательной, чтобы второе выражение каким-то образом выполнялось даже для всего / вроде: slug не может быть пустым, кажется?

Ответы [ 3 ]

2 голосов
/ 07 февраля 2020

Вместо перенаправления вы должны отрендерить index.html

app.get('/', function (req, res) { 
   res.sendFile(__dirname + '/index.html');
} 
1 голос
/ 07 февраля 2020

Ну, обычно перенаправление используется, когда вы пытаетесь перенаправить из одной конечной точки в другую, там вы передаете URL целевой конечной точки. вы перенаправляете на страницу html, поэтому она добавляется в URL. Вы должны просто использовать какой-нибудь заманчивый движок, такой как (jade, hbs), при перенаправлении, или вы можете просто использовать метод sendFile для рендеринга stati c html файлов. Проверьте код ниже.

app.get('/', (req, res) => { 
   res.sendFile(__dirname + '/index.html');
}); 
0 голосов
/ 07 февраля 2020

Спасибо, ребята, но я старался не делать это отдельно. Глядя на Express Маршруты Я обнаружил, что URL ведут себя как регулярные выражения, поэтому просто добавив? делает: slug необязательным.

    app.get(/:slug?) function (req, res) { 
      //slug will be undefined for just / so
      if(!slug) slug = 'index';
      //render the appropriate page
    } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...