# 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)
Last Updated: 6/17/2023, 6:57:19 PM