版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hjh00/article/details/78781412
用express创建的Nodejs项目缺省使用jade模板,最后决定采用swig模板,类似jinja的模板。
1. 安装
npm install swig --save
2. 参照error.jade、index.jade和layout.ade生成error.html、index.html和lyout.html三个文件
1)layout.html定义了两个block : 一个title、一个content
<!DOCTYPE html>
<html>
<head>
<title>{% block title %}{% endblock %}</title>
<link href='/stylesheets/style.css' real='stylesheet'>
</head>
<body>
{% block content %}{% endblock %}
</body>
</html>
2)index.html 扩展(extends)自layout.html,
{% extends 'layout.html' %}
{% block title %}index {{ title }} {%endblock%}
{% block content %}
<p> This is a swig template engine demo. </p>
{% endblock %}
3)error.html 扩展(extends)自layout.html
{% extends 'layout.html' %}
{% block title %}index {{ title }} {%endblock%}
{% block content %}
<h1>{{ message }}</h1>
<h2>{{ error.status }}</h2>
<pre>{{ error.stack }}</pre>
{% endblock %}
4)修改app.js
增加
var swig = require('swig');
增加
swig.setDefaults({
cache: false
});
注释
//app.set('view engine', 'jade');
增加
app.set('view engine', 'html');
app.engine('html', swig.renderFile);
修改
res.render('error');
为
res.render('error',{ title: 'Express & swig'});
5)修改/routes/index.js
找到res.render('index' 将其修改为
res.render('index', {
title: 'Express & swig',
content: 'This is a demo of swig.'
});
3. 运行效果
nmp start 运行,通过浏览器看效果
ok, express与swig已配合运行。