NodeJS中使用swig模板引擎


NodeJS中的默认引擎是jade有点过于复杂,而且不是以HTML为基础的,学习成本和前端适应成本都很大。而ejs虽然简单,但不支持模板导入,而且效率一般。

swig的语法简单,学习成本很低,符合常规逻辑,实验了一下,非常满意;

swig的官网:swig

在Express中使用swig

在nodejs随便建立一个express项目,直接使用命令

mddir 文件夹名称
cd 文件夹名称
express

就可以建立一个一jade为模板的项目。

在package中更改引用

把jade去掉,改为:

"swig": "~1.4.2"

修改app.js

var app = express(); app.set('view engine', 'jade'); //把上面的代码改为下面的 var app = express(), swig = require('swig'), people; app.set('view engine', 'html'); 

然后增加一行代码:

app.engine('html', swig.renderFile); app.listen(3000); 

然后把原来的views文件夹下得文件后缀都改为html

模板文件layout.html

<!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: '标题' }); });


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM