快递,检查模板是否存在

有一种方法,我可以告诉如果一个给定的模板存在快递? 基本上我想创build特定和回退模板,但不希望在模板本身包含该逻辑。

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

specific_page名称是在运行时基于用户设备,语言等生成的。

注:我不需要知道如何在模板中进行string本地化,我已经有了。 我正在寻找整个布局/模板更改的情况。

你可以使用这个:

 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); }); 

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