zoukankan      html  css  js  c++  java
  • 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: '标题' });
    });
  • 相关阅读:
    laravel excel 导入
    linux 怎么解压
    mysql分表和表分区详解
    mysql主从复制windows-》linux
    Redis和Memcache的区别
    mysql group by 用法解析(详细)
    [置顶] mysql常用函数
    mysql测试数据库employees一些sql语句
    session入mysql
    session入库
  • 原文地址:https://www.cnblogs.com/liusixin/p/6545034.html
Copyright © 2011-2022 走看看