快速,检查模板是否存在

时间:2013-06-07 12:43:19

标签: node.js express

有没有办法可以判断快递中是否存在给定的模板?基本上我想创建特定的和后备模板,但不希望在模板本身中包含该逻辑。

if( res.templateExists( 'specific_page' ) ) {
  res.render( 'specific_page' );
} else {
  res.render( 'generic_page' );
}

specific_page名称在运行时根据用户设备,语言等生成。

注意:我不需要知道如何在模板中进行字符串本地化,这是我已经拥有的。我正在寻找整个布局/模板发生变化的情况。

1 个答案:

答案 0 :(得分:8)

您可以使用此:

res.render('specific_page', function(err, html) {
  if (err) {
    if (err.message.indexOf('Failed to lookup view') !== -1) {
      return res.render('generic_page');
    }
    throw err;
  }
  res.send(html);
});

这将区分由于找不到模板而引发的错误(在这种情况下,它将呈现generic_page),以及可能发生的任何其他错误(重新抛出)。它并不完全稳定,因为它依赖于抛出的错误消息,但我认为还没有其他方法可以确定错误的类型。