有没有办法可以判断快递中是否存在给定的模板?基本上我想创建特定的和后备模板,但不希望在模板本身中包含该逻辑。
if( res.templateExists( 'specific_page' ) ) {
res.render( 'specific_page' );
} else {
res.render( 'generic_page' );
}
specific_page
名称在运行时根据用户设备,语言等生成。
注意:我不需要知道如何在模板中进行字符串本地化,这是我已经拥有的。我正在寻找整个布局/模板发生变化的情况。
答案 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
),以及可能发生的任何其他错误(重新抛出)。它并不完全稳定,因为它依赖于抛出的错误消息,但我认为还没有其他方法可以确定错误的类型。