# app.engine
将给定的模板引擎
callback
注册为ext
。
# 概要
app.engine(ext, callback)
# 描述
将给定的模板引擎 callback
注册为 ext
。
默认情况下,Express 会根据文件扩展名 require()
引擎。例如,如果您尝试渲染 "foo.pug" 文件,Express 会在内部调用以下内容,并在后续调用中缓存 require()
以提高性能。
app.engine('pug', require('pug').__express)
对于不提供开箱即用的 .__express
的引擎,或者如果您希望 "map" 为模板引擎提供不同的扩展,请使用此方法。
例如,要将 EJS 模板引擎映射到 ".html" 文件:
app.engine('html', require('ejs').renderFile)
在这种情况下,EJS 提供了一个 .renderFile()
方法,其签名与 Express 期望的相同:(path, options, callback)
,但请注意,它在内部将此方法别名为 ejs.__express
,因此如果您使用 ".ejs" 扩展,则无需执行任何操作。
一些模板引擎不遵循这个约定。consolidate.js
库映射 Node 模板引擎以遵循此约定,因此它们可以与 Express 无缝协作。
const engines = require('consolidate')
app.engine('haml', engines.haml)
app.engine('html', engines.hogan)
← app.enabled app.get →