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>
不可能有更好的答案!非常感谢您的快速反馈!