Pug 有条件包含文件路径的所有子目录

问题描述 投票:0回答:1

我想为任何包含

/edit-post
的 URL 包含一个脚本文件。问题是,我的编辑器 URL 始终会带有这样的帖子标题后缀:
/edit-post/some-post-title
,因此我的 Pug 条件永远不会计算为 true。

换句话说,我正在寻找在以下两个示例条件下均成立的条件语句:

/edit-post/some-post-title
/edit-post/an-even-better-post-title

我已经可以访问路径 url 变量,并且当完全匹配时我的条件工作正常,因此我尝试将其扩展到后缀子目录。这就是我要开始的:

if path === '/edit-post'
    //my script file

是否有办法在 Pug 中包含正则表达式或某种“包含”语句?

我在想类似

"/edit-post.*"
"edit-post[s/S]"
之类的东西。也绝望了,尝试使用
.indexOf()
,所有比我聪明的人都知道它在 Pug 模板中不起作用!

也许有更好的方法来实现这一目标?搜索了几个小时。尝试了一百个组合。帕格的文档很少。

旁注:我确实找到了我一直用作测试人员的这个整洁的小 Pug/Jade 条件文档。可能有用:http://learnjade.com/tour/conditionals/

javascript node.js express pug
1个回答
2
投票

其实我推荐你:

1) 重新考虑你的路线

2) 为管理面板布局创建

/layouts/admin

3) 创建

/admin/posts/edit
视图用于编辑目的



但对于你的问题,这里有一个简单的例子:

router.get('/post/:slug/edit', (req, res) => {
  Post  
    .findOne({slug: req.params.slug})
    .exec((err, post) => {
      res.render('post', {includeEdit: true, post});
    });
});
  • Post
    是猫鼬模型

并在您的视图文件中:

if includeEdit === true
  include partials/edit
© www.soinside.com 2019 - 2024. All rights reserved.