node express中使用HTML模板

2,634

前言

一般我们在做node web项目的时候,想使用我们平时常用的html模板,express默认使用jade模板,本身是没有HTML的,那么如何实现呢?

ejs模板配置

使用

var app = express();
app.set('views', path.join(__dirname, 'views'));
//设置视图引擎
app.set('view engine', 'ejs');

html模板配置

安装ejs

npm install ejs -D

引入

var ejs = require('ejs');

使用

var app = express();
var ejs = require('ejs');
app.set('views', path.join(__dirname, 'views'));
app.engine('html', ejs.__express);
app.set('view engine', 'html');

说明

app.engine(ext, cb)

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

将ejs模板映射至.html文件;

上面实际上是调用了ejs的.renderFile()方法,ejs.__express是该方法在ejs内部的另一个名字。

因为加载的模板引擎后调用的是同一个方法.__express,所以如果使用的是ejs模板,不用配置该项。

app.set(name, value)

在.set()方法的参数中,有一项是'view engine',表示没有指定文件模板格式时,默认使用的引擎插件;

如果这里设置为html文件,设置路由指定文件时,只需写文件名,就会找对应的html文件。