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: '標題' }); });