app.engine(ext, callback)
注册给定引擎的回调,用来渲染处理ext文件。
默认情况下,Express需要使用require()来加载基于文件扩展的引擎。例如,如果你尝试渲染一个foo.jade文件,Express在内部调用下面的内容,同时缓存require()结果供随后的调用,来加速性能。
app.engine('jade', require('jade').__express);
使用下面的方法对于那些没有提供开箱即用的.__express方法的模板,或者你希望使用不同的模板引擎扩展。
比如,使用EJS模板引擎来渲染.html文件:
app.engine('html', require('ejs').renderFile);
在这个例子中,EJS提供了一个.renderFile方法,这个方法满足了Express规定的签名规则:(path, options, callback),然而记住在内部它只是ejs.__express的一个别名,所以你可以在不做任何事的情况下直接使用.ejs扩展。
一些模板引擎没有遵循这种规范,[consolidate.js][17]库映射模板引擎以下面的使用方式,所以他们可以无缝的和Express工作。
var engines = require('consolidate');app.engine('haml', engines.haml);app.engine('html', engines.hogan);
