node结合swig渲染摸板的方法


Posted in Javascript onApril 11, 2018

在这里就nodejs如何应用swig摸板,总结一下一些基本的用法。

首先当然是利用express框架在node后台上面搭建服务

var express = require('express');
var server = express();

server.listen(8080,'localhost',(req,res)=>{
   console.log('服务器启动...');
})

启动成功之后,开始设置swig摸板的相关配置,具体代码如下:

npm install swig -s

安装成功之后,加上swig配置,代码如下:

//配置摸板引擎
var swig = require('swig');
//参数1,摸板引擎的名称,固定字段
//参数2,摸板引擎的方法
server.engine('html',swig.renderFile);
//摸板引擎存放目录的关键字,固定字段
//实际存在的目录,html文件就在html文件夹下面
server.set('views',__dirname+'/html');
//注册摸板引擎,固定字段
server.set('view engine','html');
//关闭swig缓存,缓存的目的也是提高node服务器的响应速度
swig.setDefaults({cache:false});

配置需要渲染的数据:

server.get('/',(req,res)=>{
  //render方法只有在使用摸板引擎之后才会生效,其中 参数1是需要渲染的摸板名称,参数2就是需要渲染到页面的一些参数
  res.render('temp',{
    name:'张三',
    user:{
      name:'栗子',
      age:18
    },
    lists:['item1','item2','item3','item4','item5',
    'item6','item7','item8','item9','item10','item11','item12',
    'item13','item14','item15','item16','item17','item18','item19',
    'item20','item21','item22','item23','item24','item25','item26']
  });
})

html文件的具体代码如下所示:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
  <div>摸板引擎</div>
  <!-- {{}} 插值表达式-->
  姓名:<p>{{name}}</p>
  {% if user.name == '栗子' && user.age == '18'%}
  姓名:<p>栗子</p>
  {% elseif user.name == '张三'%}
  <p>张三</p>
  {% endif %}
  <p>遍历数组</p>
  {% for items in lists%}
  <li>items</li>
  {% endfor %}
  
   <!-- 页面上面设置数据 -->
  {% set arr = [1,2,3,4,5]%}
  <p>{{arr.length}}</p>
  <!-- 如何引入页面-->
  {% include './common.html' %}
</body>
</html>

具体页面显示如下:

node结合swig渲染摸板的方法

上面讲的是使用swig摸板引擎如何传递参数到页面渲染,下面来看看如何使用swig提取html公共的部分:

html页面公共的部分,比如说header,公共的js css文件,导航栏等

设置一个公共的页面:

<header>
  <title>node</title>
  <!-- css占位符主要用来显示其他页面的个性化的css文件,例如home.css about.css -->
  {% block css%}
  {% endblock %}
  <link rel="stylesheet" href="/static/css/layout.css" rel="external nofollow" >
</header>
<!-- 所以页面公共的导航栏 -->
<nav>
  <li><a href="">首页</a></li>
  <li><a href="">关于我们</a></li>
  <li><a href="">商品列表</a></li>
  <li><a href="">登录</a></li>
  <li><a href="">注册</a></li>
</nav>
 <!-- content占位符主要用来显示其他页面的个性化的内容显示,不同的页面有不同的显示方式 -->
{% block content%}
{% endblock %}
 <!-- js占位符主要用来显示其他页面的个性化的js文件,例如home.js about.js -->
{% block js%}
{% endblock %}
<script src="/static/js/layout.js"></script>

home.html

<!-- 继承所有页面公共的页面模块layout.html -->
{% extends './layout.html'%}
{% block css %}
<link rel="stylesheet" href="/static/css/home.css" rel="external nofollow" >
{% endblock %}
{% block content %}
 <li><a href="">1</a></li>
 <li><a href="">2</a></li>
 <li><a href="">3</a></li>
 <li><a href="">4</a></li>
 <li><a href="">5</a></li>
 <li><a href="">6</a></li>
{% endblock %}

{% block js %}
<script src="/static/js/home.js"></script>
{% endblock %}

当启动node服务器,渲染home页面的时候,你会看到

server.get('/',(req,res)=>{
  res.render('www/home',{});
})

node结合swig渲染摸板的方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用js判断用户浏览器是否是XP SP2的IE6
Mar 08 Javascript
妙用Jquery的val()方法
Jun 27 Javascript
如何在MVC应用程序中使用Jquery
Nov 17 Javascript
JavaScript 节流函数 Throttle 详解
Jul 04 Javascript
原生js实现节日时间倒计时功能
Jan 18 Javascript
Easy UI动态树点击文字实现展开关闭功能
Sep 30 Javascript
vue中使用iview自定义验证关键词输入框问题及解决方法
Mar 26 Javascript
一秒学会微信小程序制作table表格
Feb 14 Javascript
jQuery实现文本显示一段时间后隐藏的方法分析
Jun 20 jQuery
Flutter实现仿微信底部菜单栏功能
Sep 18 Javascript
layui-tree实现Ajax异步请求后动态添加节点的方法
Sep 23 Javascript
在VUE中实现文件下载并判断状态的方法
Nov 08 Javascript
详解react、redux、react-redux之间的关系
Apr 11 #Javascript
Mac下安装vue
Apr 11 #Javascript
vue-cli 组件的导入与使用教程详解
Apr 11 #Javascript
手动用webpack搭建第一个ReactApp的示例
Apr 11 #Javascript
浅谈vue-cli 3.0.x 初体验
Apr 11 #Javascript
vue 组件高级用法实例详解
Apr 11 #Javascript
vue单个组件实现无限层级多选菜单功能
Apr 10 #Javascript
You might like
PHP 5.3新特性命名空间规则解析及高级功能
2010/03/11 PHP
PHP daddslashes 使用方法介绍
2012/10/26 PHP
ThinkPHP框架实现session跨域问题的解决方法
2014/07/01 PHP
php使用Cookie控制访问授权的方法
2015/01/21 PHP
Yii框架表单模型和验证用法
2016/05/20 PHP
thinkphp整合系列之极验滑动验证码geetest功能
2019/06/18 PHP
showModalDialog 和 showModelessDialog
2007/01/22 Javascript
Javascript之this关键字深入解析
2013/11/12 Javascript
js 对小数加法精度处理示例说明
2013/12/27 Javascript
JavaScript中扩展Array contains方法实例
2020/08/23 Javascript
jQuery+CSS实现滑动的标签分栏切换效果
2015/12/17 Javascript
通过网页查看JS源码中汉字显示乱码的解决方法
2016/10/26 Javascript
JavaScript 深层克隆对象详解及实例
2016/11/03 Javascript
详解node如何让一个端口同时支持https与http
2017/07/04 Javascript
angularjs利用directive实现移动端自定义软键盘的示例
2017/09/20 Javascript
js实现数组内数据的上移和下移的实例
2017/11/14 Javascript
浅谈使用React.setState需要注意的三点
2017/12/18 Javascript
Angular4学习笔记router的简单使用
2018/03/30 Javascript
vue-infinite-loading2.0 中文文档详解
2018/04/08 Javascript
vue通过cookie获取用户登录信息的思路详解
2018/10/30 Javascript
js实现内置计时器
2019/12/16 Javascript
vue引入静态js文件的方法
2020/06/20 Javascript
Vue中正确使用Element-UI组件的方法实例
2020/10/13 Javascript
Python常用模块介绍
2014/11/21 Python
python3实现绘制二维点图
2019/12/04 Python
PyTorch的SoftMax交叉熵损失和梯度用法
2020/01/15 Python
在Tensorflow中查看权重的实现
2020/01/24 Python
迪奥美国官网:Dior美国
2019/12/07 全球购物
高级护理实习生自荐信
2013/09/28 职场文书
优秀生推荐信范文
2013/11/28 职场文书
高中自我评价范文
2014/01/27 职场文书
优秀团支部事迹材料
2014/02/08 职场文书
反腐倡廉标语
2014/06/24 职场文书
四风自我剖析材料
2014/09/30 职场文书
自我推荐信怎么写
2015/03/24 职场文书
JavaScript 事件捕获冒泡与捕获详情
2021/11/11 Javascript