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 相关文章推荐
用jQuery打造TabPanel效果代码
May 22 Javascript
你必须知道的JavaScript 中字符串连接的性能的一些问题
May 07 Javascript
js实现简单鼠标跟随效果的方法
Apr 10 Javascript
node.js微信公众平台开发教程
Mar 04 Javascript
深入理解jQuery之防止冒泡事件
May 24 Javascript
使用json来定义函数,在里面可以定义多个函数的实现方法
Oct 28 Javascript
js中的eval()函数把含有转义字符的字符串转换成Object对象的方法
Dec 02 Javascript
ES6中字符串string常用的新增方法小结
Nov 07 Javascript
Vue动态组件与异步组件实例详解
Feb 23 Javascript
小程序实现订单倒计时功能
Apr 23 Javascript
element form 校验数组每一项实例代码
Oct 10 Javascript
使用Vue实现一个树组件的示例
Nov 06 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
Zend studio for eclipse中使php可以调用mysql相关函数的设置方法
2008/10/13 PHP
php获取英文姓名首字母的方法
2015/07/13 PHP
Symfony控制层深入详解
2016/03/17 PHP
php提交表单时保留多个空格及换行的文本样式的方法
2017/06/20 PHP
javascript引导程序
2008/10/26 Javascript
javascript concat数组累加 示例
2009/09/03 Javascript
老鱼 浅谈javascript面向对象编程
2010/03/04 Javascript
浏览器解析js生成的html出现样式问题的解决方法
2012/04/16 Javascript
JavaScript中的继承方式详解
2015/02/11 Javascript
深入理解JavaScript中的对象复制(Object Clone)
2016/05/18 Javascript
javascript实现粘贴qq截图功能(clipboardData)
2016/05/29 Javascript
纯js和css完成贪吃蛇小游戏demo
2016/09/01 Javascript
jquery自定义表单验证插件
2016/10/12 Javascript
EditPlus 正则表达式 实战(3)
2016/12/15 Javascript
jQuery实现右侧抽屉式在线客服功能
2017/12/25 jQuery
Vue.set()实现数据动态响应的方法
2018/02/07 Javascript
深入理解vue-class-component源码阅读
2019/02/18 Javascript
Node.js事件的正确使用方法
2019/04/05 Javascript
vue实现固定位置显示功能
2019/05/30 Javascript
微信小程序移动拖拽视图-movable-view实例详解
2019/08/17 Javascript
原生JS无缝滑动轮播图
2019/10/22 Javascript
使用Vue.set()方法实现响应式修改数组数据步骤
2019/11/09 Javascript
Python开发实例分享bt种子爬虫程序和种子解析
2014/05/21 Python
Python实现统计给定字符串中重复模式最高子串功能示例
2018/05/16 Python
python自动化测试之DDT数据驱动的实现代码
2019/07/23 Python
keras model.fit 解决validation_spilt=num 的问题
2020/06/19 Python
python实现简单猜单词游戏
2020/12/24 Python
HTML5 Canvas如何实现纹理填充与描边(Fill And Stroke)
2013/07/15 HTML / CSS
悬挂训练绳:TRX
2017/12/14 全球购物
新加坡交友网站:be2新加坡
2019/04/10 全球购物
公司拓展活动方案
2014/02/13 职场文书
镇党委书记群众路线整改措施思想汇报
2014/10/13 职场文书
小学班主任事迹材料
2014/12/17 职场文书
教师个人师德总结
2015/02/06 职场文书
小学生表扬稿范文
2015/05/05 职场文书
岁月神偷观后感
2015/06/11 职场文书