2017-01-21 2 views
0

Существует уже similar thread, который кажется похожим, но здесь у меня есть другая проблема.Как получить полный динамический URL-адрес в NodeJS?

Я хочу, чтобы весь URL-адрес был динамическим. Я использую общий шаблон nunjuk для всех моих страниц.

Посмотрим правде в глаза. Предположим, что я имею в URL-путь:

/блог/один/два/три

Следует отметить, что «блог» является статическим, но «один», «два» и «три» являются переменные, которые будут меняться в соответствии с запрошенной записью в блоге на моем веб-сайте.

Я использую следующий код, чтобы получить URL-адрес, передав «: post», но как при добавлении дополнительных подкаталогов пути, таких как «один», «два» или «три» в URL-адресе, я получаю Ошибка «шаблон не найден».

router.get('/blog/:post', function (req, res) { 
      var path = req.params.post; 

      var title2 = JSONFile[path].title; 
      var date2 = JSONFile[path].date; 
      var author2 = JSONFile[path].author; 
      var content2 = JSONFile[path].content; 

      res.render('blogposts.html', { 
        title : title2, 
        date: "date2", 
        author: "author2", 
        content: "content2" 
      }); 
    }); 

Мой вопрос: Как я могу получить все динамические URL-адреса после «/ blog»? И помните, что подпутники также могут распространяться на «четыре» или «пять» и так далее.

ответ

0

Я предполагаю, что есть 3 параметра в позиции одного, двух и трех, и все они являются динамическими, и вы хотите обслуживать некоторый контент после использования этих параметров в коде. Вы можете заменить его с этим,

/blog/:year/:month/:day 

Таким образом, все 3 параметра являются динамичными и могут быть доступны, как это,

var year = req.params['year'], 
    month = req.params['month'], 
    day = req.params['day']; 

Если есть более 3-х параметров в URL, то вы можете добавить еще заполнители как этот

/blog/:one/:two/:three/:four/:five 

и все они могут быть доступны из req.params

Смежные вопросы