如何在一个nodejs&express项目中同时使用ejs和jade?

我想使用ejs来进行partials,并使用jade来进行单个页面,如何在一个nodejs&express项目中使用这两个页面?

github上的expressjs api docs和consolidate.js很容易find

请参考下面的express.js文档片段


app.engine(ext,callback)

将给定的模板引擎callback注册为ext默认情况下,需要()基于文件扩展名的引擎。 例如,如果您尝试渲染“foo.jade”文件,则Express将在内部调用以下内容,并在随后的调用中cachingrequire()以提高性能。

app.engine('jade', require('jade').__express); 

对于不提供.__表示的引擎,或者如果您希望将不同的扩展名映射到模板引擎,您可以使用此方法。 例如,将EJS模板引擎映射到“.html”文件:

 app.engine('html', require('ejs').renderFile); 

在这种情况下,EJS提供了一个.renderFile()方法,它具有与Express所期望的相同的签名:(path,options,callback),但是请注意,它将这个方法别名为ejs .__,所以如果使用“.ejs”你不需要做任何事情。

一些模板引擎不遵循这个约定,巩固.js库被创build映射所有节点的stream行的模板引擎遵循这个约定,从而允许他们在Express中毫无意义地工作。

 var engines = require('consolidate'); app.engine('haml', engines.haml); app.engine('html', engines.hogan);