【问题标题】:How can i get Express routes to render specific pages如何获得快速路线来呈现特定页面
【发布时间】:2016-12-15 00:12:35
【问题描述】:

我正在使用 MEAN 堆栈构建博客应用程序,我有一些路由查询数据库中的帖子,然后使用 pug.js 模板引擎呈现它们。路线看起来像

router.get('/:name', function(req, res) {
    //logic querying mongodb using name as 
    //req.params.id to search for a specific author of the posts and rendering
})

这可行,但是当我想使用 router.get'/contact'、函数等渲染我的联系人页面时...

它尝试查询联系人而不是呈现contact.pug 文件,我该怎么做才能让这些页面呈现?

【问题讨论】:

  • 如果不查看整个路由,就很难准确地看到自己在做什么

标签: javascript express


【解决方案1】:

添加路线的顺序很重要。 Express 将按照您添加规则的顺序处理规则。因此,最简单的解决方案是将您的静态路由(如 /contact)放在博客文章的全能参数路由之前。

即确保订单如下所示:

router.get('/contact', ...);
router.get('/:name', ...);

【讨论】:

  • router.get('/:id', ...);
  • 您可以在/:name 路由中手动处理它(通过检查req.params.name 是否是一个ID,或者只是尝试在数据库中找到它两次)。另一种方法是使用正则表达式来定义您的/:id 路由see the docs
  • 我也有一条路线,作者说 /Gorgon 但它说当我使用正则表达式时它无法获取 Gorgon '/[A-Z][a-f]+'
猜你喜欢
  • 2018-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-19
  • 1970-01-01
  • 2014-04-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多