Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Express.js+;把手-试图在视图中使用正则表达式_Javascript_Regex_Express_Handlebars.js - Fatal编程技术网

Javascript Express.js+;把手-试图在视图中使用正则表达式

Javascript Express.js+;把手-试图在视图中使用正则表达式,javascript,regex,express,handlebars.js,Javascript,Regex,Express,Handlebars.js,访问/文章时,我有以下处理程序: exports.articles = (function(req, res) { Article.find( function(err, articles){ if(err) { res.send(500, { error: err }); } res.render('articles', { articles: articles }); }); }); 这是相应的观点:

访问/文章时,我有以下处理程序:

exports.articles = (function(req, res) {
    Article.find( function(err, articles){
        if(err) {
            res.send(500, { error: err });
        }

        res.render('articles', { articles: articles });
    });
});
这是相应的观点:

<section id="articles">
{{#each articles}}
    <article class="geometry">
        <h4>{{ title }}</h4>
        <hr>
        <p>{{ content }}</p>
        <!-- LINK TO ARTICLE HERE -->
    </article>
{{/each}}
</section>

{{#每篇文章}
{{title}}

{{content}}

{{/每个}}
我想建立这个链接,这样每当有人点击它时,浏览器应该用破折号而不是空格导航到/article/title。基本上,我想在标题上使用title.replace(/\s/g,“-”),然后再将其附加到标记中。有没有办法在视图中使用手柄将其设置为这样的格式?还是应该在后端完成


谢谢大家!

我想它真的属于后端。在那里很容易做到:

Article.find( function(err, articles){
  if(err) {
    res.send(500, { error: err });
  }
  articles.forEach(function(article) {
    article.link = '/article/' + article.title.replace(/\s/g, '-');
  });
  res.render('articles', { articles: articles });
});
我希望将此代码作为
generateLink()
方法插入到
文章
模型中,因为它简化了重用

另一种方法是注册车把助手

Handlebars.registerHelper('articleLink', function() {
  return '/article/' + this.title.replace(/\s/g, '-');
});
。。。然后在模板中使用它:

<article class="geometry">
  <h4>{{ title }}</h4>
  <hr>
  <p>{{ content }}</p>
  <a href="{{ articleLink }}">Link</a>
</article>

不可能有更好的答案!非常感谢您的快速反馈!