如何在NodeJS中获取完整的动态URL?

时间:2017-01-21 09:33:24

标签: node.js

已经有similar thread似乎相似但在这里我遇到了一些不同的问题。

我想要URL是动态的完整URL。我正在为我的所有页面使用一个常见的nunjuk模板。

让我们面对现实吧。假设我有一个URL路径:

  

/博客/一/二/ 3

值得注意的是,“博客”是静态的,但“一个”,“两个”和“三个”是变量,它们将根据我网站上所要求的博客文章进行更改。

我正在使用以下代码通过传递“:post”来获取URL,但是当我在url中添加更多路径子目录(如“one”,“two”或“three”)时,我得到了“找不到模板“错误。

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"
            });
    });

我的问题是:如何在“/ blog”之后获取所有动态网址子路径?请记住,子路径也可以扩展到“四”或“五”等等。

1 个答案:

答案 0 :(得分:0)

我假设在一个,两个和三个位置有3个参数,所有这些参数都是动态的,你想在代码中使用这些参数后提供一些内容。你可以用它替换它,

/blog/:year/:month/:day

这样,所有3个参数都是动态的,可以这样访问,

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

如果网址中有超过3个参数,那么您可以附加更多占位符,例如

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

所有这些都可以从req.params

访问