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

Hen*_*Leu 5 ejs node.js express pug

我想使用ejs for partials并将jade用于单个页面,如何在一个nodejs和express项目中使用它们?

Hen*_*Leu 10

在github中很容易找到expressjs api docsconsolidate.js的方法

请参考下面的express.js doc片段


app.engine(分机,回拨)

将给定的模板引擎回调注册为ext默认情况下,将根据文件扩展名要求()引擎.例如,如果您尝试呈现"foo.jade"文件,Express将在内部调用以下内容,并在后续调用中缓存require()以提高性能.

app.engine('jade', require('jade').__express);
Run Code Online (Sandbox Code Playgroud)

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

app.engine('html', require('ejs').renderFile);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,EJS提供了一个.renderFile()方法,其具有与Express期望的相同的签名:(路径,选项,回调),但请注意,它将此方法别名为ejs .__ express in internal,如果您使用".ejs"扩展名你不需要做任何事情.

有些模板引擎不遵循这个约定,创建了consolidate.js库来映射所有节点的流行模板引擎以遵循这个约定,从而允许它们在Express中无缝地工作.

var engines = require('consolidate');
app.engine('haml', engines.haml);
app.engine('html', engines.hogan);
Run Code Online (Sandbox Code Playgroud)

  • 但我不需要使用`express.set('view engine','ext');`某处? (2认同)