5

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

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

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

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

4

1 回答 1

10

你可以使用这个:

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)和可能发生的任何其他错误(重新引发)。它并不完全稳定,因为它依赖于抛出的错误消息,但我认为没有其他方法可以确定错误类型。

于 2013-06-07T13:04:36.457 回答