Node.js Express.js博客应用程序—;格式化日期

Node.js Express.js博客应用程序—;格式化日期,node.js,express,momentjs,Node.js,Express,Momentjs,我正在学习Node.js/Express.js,作为一个实验,我正在尝试构建一个小型博客应用程序 我呈现页面,传递文章: response.render('index.jade', { title: 'Blog' , locals: { articles: articles } }); 这是我的翡翠模板: h1= title section h1 Articles ul each article in articles li a(hr

我正在学习Node.js/Express.js,作为一个实验,我正在尝试构建一个小型博客应用程序

我呈现页面,传递文章:

response.render('index.jade', {
    title: 'Blog'
  , locals: {
      articles: articles
  }
});
这是我的翡翠模板:

h1= title
section
  h1 Articles
  ul
  each article in articles
    li
      a(href='/article/' + article.slug)= article.title
      span  at #{article.created_at}

这将显示包含标题和日期的文章列表。但是,我需要一种将日期格式化为更可读格式的方法。我发现了允许您这样做的库,但我真正的问题是如何将其集成到我的模板中?我可以将moment模块传递给模板并在那里内联设置日期格式,也可以在route中设置日期格式并将其添加到
article
对象中。您将如何做到这一点?

如果您想要更少、更干净的代码,我会选择添加到模板中。如果需要性能,请在路由本身中格式化它。

我的应用程序中有以下帮助程序:

date: function (date) {
  return moment(date).format('YYYY/MM/DD HH:mm:ss');
},

fromNow: function(date) { 
  return moment(date).fromNow(); 
}

这可能取决于您的应用程序,但我认为没有必要在我的网站上使用不同的日期格式。

将其作为本地模板传递似乎有点奇怪。这完全正常吗?我使用
app.locals将下划线库传递给模板。使用
不会有太多性能问题。但是,如果只有少数(2-3)个地方需要这样做,那么就在路由器中进行格式化。如何进行内联格式化?插值导致“意外标识符”错误(
{moment(article.created_at).format('MMM Do'YY');}
)。
span='at'+moment(article.created_at).format('MMM Do'YY')