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/vbs/vbscript加密的编码异处理小结
Jun 25 Javascript
Extjs4.0设置Ext.data.Store传参的请求方式(默认为GET)
Apr 02 Javascript
javascript级联下拉列表实例代码(自写)
May 10 Javascript
javascript完美拖拽的实现方法
Sep 29 Javascript
javascript显式类型转换实例分析
Apr 25 Javascript
jQuery基于ID调用指定iframe页面内的方法
Jul 06 Javascript
js前端解决跨域问题的8种方案(最新最全)
Nov 18 Javascript
BootStrap+Mybatis框架下实现表单提交数据重复验证
Mar 23 Javascript
jQuery上传插件webupload使用方法
Aug 01 jQuery
vue axios 表单提交上传图片的实例
Mar 16 Javascript
图解javascript作用域链
May 27 Javascript
如何让vue长列表快速加载
Mar 29 Vue.js
详解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连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
2016/12/21 PHP
phpStudy2016 配置多个域名期间遇到的问题小结
2017/10/19 PHP
js鼠标左右键 键盘值小结
2010/06/11 Javascript
JS+CSS实现自动改变切换方向图片幻灯切换效果的方法
2015/03/02 Javascript
jQuery焦点图轮播特效代码分享(3款)
2015/09/05 Javascript
jquery实现横向图片轮播特效代码分享
2015/11/19 Javascript
利用JavaScript实现拖拽改变元素大小
2016/12/14 Javascript
jQuery条件分页 代替离线查询(附代码)
2017/08/17 jQuery
Python完全新手教程
2007/02/08 Python
Python自动连接ssh的方法
2015/03/07 Python
Python使用xlrd读取Excel格式文件的方法
2015/03/10 Python
在Python中使用第三方模块的教程
2015/04/27 Python
python实现批量下载新浪博客的方法
2015/06/15 Python
python多进程中的内存复制(实例讲解)
2018/01/05 Python
python随机在一张图像上截取任意大小图片的方法
2019/01/24 Python
Python2 Selenium元素定位的实现(8种)
2019/02/25 Python
检测python爬虫时是否代理ip伪装成功的方法
2019/07/12 Python
Tensorflow读取并输出已保存模型的权重数值方式
2020/01/04 Python
python实时监控logstash日志代码
2020/04/27 Python
html5视频播放_动力节点Java学院整理
2017/07/13 HTML / CSS
简单介绍HTML5中的文件导入
2015/05/08 HTML / CSS
如何给HTML标签中的文本设置修饰线
2019/11/18 HTML / CSS
ASOS比利时:英国线上零售商及自有品牌
2018/07/29 全球购物
苏格兰在线威士忌商店:The Whisky Barrel
2019/05/07 全球购物
Bibloo罗马尼亚网站:女装、男装、童装及鞋子和配饰
2019/07/20 全球购物
美国专业消费电子及摄影器材网站:B&H Photo Video
2019/12/18 全球购物
如何用Lucene索引数据库
2016/02/23 面试题
个人求职简历的自我评价
2013/10/19 职场文书
租房协议书
2014/04/10 职场文书
2014年银行工作总结范文
2014/11/12 职场文书
2014三年级班主任工作总结
2014/12/05 职场文书
水电工程师岗位职责
2015/02/13 职场文书
对领导班子的意见和建议
2015/06/08 职场文书
关于分班的感言
2015/08/04 职场文书
创业计划书之牛肉汤快餐店
2019/10/08 职场文书
python如何读取.mtx文件
2021/04/22 Python