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 相关文章推荐
JavaScript的Cookies
Jan 16 Javascript
js 创建书签小工具之理论
Feb 25 Javascript
jquery.cookie() 方法的使用(读取、写入、删除)
Dec 05 Javascript
手写的一个兼容各种浏览器的javascript getStyle函数(获取元素的样式)
Jun 06 Javascript
一个JavaScript处理textarea中的字符成每一行实例
Sep 22 Javascript
jQuery实现弹幕效果
Feb 17 Javascript
微信小程序访问node.js接口服务器搭建教程
Apr 25 Javascript
node.js中EJS 模板快速入门教程
May 08 Javascript
使用bootstraptable插件实现表格记录的查询、分页、排序操作
Aug 06 Javascript
解决Vue axios post请求,后台获取不到数据的问题方法
Aug 11 Javascript
Koa代理Http请求的示例代码
Oct 10 Javascript
如何用vue实现网页截图你知道吗
Nov 17 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自动更新新闻DIY
2006/10/09 PHP
PHP不使用内置函数实现字符串转整型的方法示例
2017/07/03 PHP
javascript为下拉列表动态添加数据项
2014/05/23 Javascript
jQuery实现图片与文字描述左右滑动自动切换的方法
2015/07/27 Javascript
PHP+jQuery+Ajax+Mysql如何实现发表心情功能
2015/08/06 Javascript
javascript实现下雪效果【实例代码】
2016/05/03 Javascript
JavaScript中的原型继承基础学习教程
2016/05/06 Javascript
javascript url几种编码方式详解
2016/06/06 Javascript
简单谈谈Vue 模板各类数据绑定
2016/09/25 Javascript
js实现上下左右弹框划出效果
2017/03/08 Javascript
利用js实现前后台传送Json的示例代码
2018/03/29 Javascript
JQuery模拟实现网页中自定义鼠标右键菜单功能
2018/11/14 jQuery
爬虫利器Puppeteer实战
2019/01/09 Javascript
vue中$refs, $emit, $on, $once, $off的使用详解
2019/05/26 Javascript
vue中watch和computed为什么能监听到数据的改变以及不同之处
2019/12/27 Javascript
js实现手表表盘时钟与圆周运动
2020/09/18 Javascript
JS实现放大镜效果
2020/09/21 Javascript
JSONObject与JSONArray使用方法解析
2020/09/28 Javascript
小程序实现tab标签页
2020/11/16 Javascript
[46:44]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD BO3 第二场 3月7日
2021/03/11 DOTA
python动态性强类型用法实例
2015/05/09 Python
python函数形参用法实例分析
2015/08/04 Python
关于python pyqt5安装失败问题的解决方法
2017/08/08 Python
Python实现二维曲线拟合的方法
2018/12/29 Python
python实现植物大战僵尸游戏实例代码
2019/06/10 Python
Superdry瑞典官网:英国日本街头风品牌
2017/05/17 全球购物
初级Java程序员面试题
2016/03/03 面试题
大学生护理专业自荐信
2013/10/03 职场文书
酒店管理自荐信
2013/10/23 职场文书
小学绿色学校申报材料
2014/08/23 职场文书
2015年乡镇扶贫工作总结
2015/04/08 职场文书
在CSS中映射鼠标位置并实现通过鼠标移动控制页面元素效果(实例代码)
2021/04/22 HTML / CSS
详解前端任务构建利器Gulp.js使用指南
2021/04/30 Javascript
浅谈哪个Python库才最适合做数据可视化
2021/06/28 Python
Java中CyclicBarrier和CountDownLatch的用法与区别
2021/08/23 Java/Android
Netty分布式客户端处理接入事件handle源码解析
2022/03/25 Java/Android