【问题标题】:How to get the full dynamic URL in NodeJS?如何在 NodeJS 中获取完整的动态 URL?
【发布时间】:2017-06-06 06:36:29
【问题描述】:

已经有一个similar thread 看起来很相似,但这里我有一些不同的问题。

我想要完整的 URL,其中 URL 是动态的。我的所有页面都使用了一个通用的 nunjuk 模板。

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

/blog/一/二/三

值得注意的是,“博客”是静态的,但“一”、“二”和“三”是变量,它们会根据我网站上请求的博客文章而改变。

我正在使用以下代码通过传递“:post”来获取 URL,但是当我在 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"
            });
    });

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

【问题讨论】:

    标签: node.js


    【解决方案1】:

    我假设在 1、2 和 3 的位置有 3 个参数,它们都是动态的,您希望在代码中使用这些参数后提供一些内容。你可以用这个替换它,

    /blog/:year/:month/:day
    

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

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

    如果 URL 中的参数超过 3 个,那么您可以附加更多这样的占位符

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

    所有这些都可以从 req.params 访问

    【讨论】:

      猜你喜欢
      • 2019-04-08
      • 2012-04-28
      • 2015-03-11
      • 2016-07-05
      • 1970-01-01
      • 1970-01-01
      • 2013-06-08
      • 2015-10-28
      相关资源
      最近更新 更多