NodeJS中的默认引擎是jade有点过于复杂,并且不是以HTML为基础的,学习成本和前端适应成本都很大。而ejs虽然简单,但不支持模板导入,并且效率通常。javascript
swig的语法简单,学习成本很低,符合常规逻辑,实验了一下,很是满意;html
swig的官网:swig前端
在nodejs随便创建一个express项目,直接使用命令java
mddir 文件夹名称 cd 文件夹名称 express
就能够创建一个一jade为模板的项目。node
把jade去掉,改成:git
"swig": "~1.4.2"github
var app = express(); app.set('view engine', 'jade'); //把上面的代码改成下面的 var app = express(), swig = require('swig'), people; app.set('view engine', 'html');
而后增长一行代码:express
app.engine('html', swig.renderFile); app.listen(3000);
模板文件layout.htmlapp
<!doctype html> <html> <head> <meta charset="utf-8"> <title>{% block title %}{% endblock %}</title> {% block head %} {% endblock %} </head> <body> {% block content %}{% endblock %} </body> </html>
index.html学习
{% extends 'layout.html' %}
{% block title %}index {{title}} {%endblock%}
{% block head %}
{{title}}
{% endblock %}
{% block content %}
<p>This is just an awesome page.</p> {% endblock %}
这两个文件能够初步了解swig的语法 - block至关于编辑区 - 导入模板使用:extends - 输出变量使用 {{ 变量名 }}
更详细的语法参考swig的官网。
而后再路由中设置便可使用:
router.get('/', function(req, res) { res.render('index', { title: '标题' }); });