本次记录下ejs的渲染标签

node既然是javascrip的,那么很多在前端执行代码的方式都可以放在后台从而达到无缝连接!

比如

var ygxx = function(){
document.getElementById("xm").innerHTML = '姓名:'+jyh.XM+'('+jyh.DS+')';
document.getElementById("sszd").innerHTML = '所属站点:'+jyh.SSZD;
document.getElementById("zw").innerHTML = '职务:'+jyh.ZW;
document.getElementById("lspgbh").innerHTML = '编号:'+bh.PGBH;
};

这个代码在以往,我的处理方式就是把HTML页面里生成一个 var  jyh = {};的对象 载入页面之后自动渲染

有了node就不需要这样了,完全可以在后台做

当然这里主要配合express和ejs

网上收入的ejs标签介绍:

ejs 的标签系统非常简单,它只有以下3种标签。

1 <% code %>:JavaScript 代码。 
2 <%= code %>:显示替换过 HTML 特殊字符的内容。 
3 <%- code %>:显示原始 HTML 内容。

注意: <%= code %> 和 <%- code %> 的区别,当变量 code 为字符串时,两者没有区别;当 code 为比如<h1>hello</h1> 时,<%= code %> 会原样输出 <h1>hello</h1>,而 <%- code %> 则会输出H1大的 hello。

EJS 的官方示例:

The Data

1 { title:    'Cleaning Supplies',
2   supplies: ['mop''broom''duster'] }

The Template

1 <ul>
2 <% for(var i=0; i<supplies.length; i++) {%>
3    <li><%= supplies[i] %></li>
4 <% } %>
5 </ul>

The Result

  • mop
  • broom
  • duster

我们可以用上述三种方式实现页面模板系统能实现的任何内容。

由此可以得出一个信息,ejs允许后台定义一个对象,然后前台模版用标签来实现调用对象

比如:

该文件为express的路由文件

exports.index = function(req, res){
res.render('index', {
code:{"GH":"1101","XM":"带头大哥","DS":"329","SSZD":"中国站","ZW":"管理员"}

});
};

后台定义一个对象,然后

前台模版

var ygxx = function(){
alert('AAA');
document.getElementById("xm").innerHTML = '姓名:<%= code.XM %>(<%= code.GH %>)';
document.getElementById("sszd").innerHTML = '所属站点:<%= code.SSZD %>';
document.getElementById("zw").innerHTML = '职务:<%= code.ZW %>';
};

如此这般就可以实现对象的调用,实际现实效果就是

姓名:带头大哥(1101)
所属站点:中国站
职务:管理员

另外还需要一个方式比如

前台有对象

var json = {}; 为了动态加入标签

var json = <%= code %>;

这里如果后台

exports.index = function(req, res){
res.render('index', { 
code:'{"GH":"1101","XM":"带头大哥","DS":"329","SSZD":"中国站","ZW":"管理员"}'

});
};

后台渲染字符串,用<%= >标签会报乱码!!

应该用-号

var json = <%- code %>;

这样就可以了!

node.js开发笔记之EXPRESS与EJS之ejs标签v20140329的更多相关文章

  1. mac下配置Node.js开发环境、express安装、创建项目

    mac下配置Node.js开发环境.express安装.创建项目 一.node.js的安装 去官网下载对应的平台版本就可以了,https://nodejs.org 二.express安装 sudo n ...

  2. Node.js学习笔记——Node.js开发Web后台服务

    一.简介 Node.js 是一个基于Google Chrome V8 引擎的 JavaScript 运行环境.Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效.Node.j ...

  3. 《Node.js开发实战详解》学习笔记

    <Node.js开发实战详解>学习笔记 ——持续更新中 一.NodeJS设计模式 1 . 单例模式 顾名思义,单例就是保证一个类只有一个实例,实现的方法是,先判断实例是否存在,如果存在则直 ...

  4. ES6 学习笔记 (2)-- Liunx环境安装Node.js 与 搭建 Node.js 开发环境

    笔记参考来源:廖雪峰老师的javascript全栈教程 一.安装Node.js 目前Node.js的最新版本是6.2.x.首先,从Node.js官网下载对应平台的安装程序. 1.下载 选择对应的Liu ...

  5. Nodejs学习笔记(一)--- 简介及安装Node.js开发环境

    目录 学习资料 简介 安装Node.js npm简介 开发工具 Sublime Node.js开发环境配置 扩展:安装多版本管理器 学习资料 1.深入浅出Node.js http://www.info ...

  6. Nodejs学习笔记(一)—简介及安装Node.js开发环境

    一.简介 Node.js是让Javascript脱离浏览器运行在服务器的一个平台,不是语言: Node.js采用的Javascript引擎是来自Google Chrome的V8:运行在浏览器外不用考虑 ...

  7. 【转】Nodejs学习笔记(一)--- 简介及安装Node.js开发环境

    目录 学习资料 简介 安装Node.js npm简介 开发工具 Sublime Node.js开发环境配置 扩展:安装多版本管理器 学习资料 1.深入浅出Node.js http://www.info ...

  8. 前端开发学习笔记 - 1. Node.JS安装笔记

    Node.JS安装笔记 Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js uses an ...

  9. 系列文章--Node.js学习笔记系列

    Node.js学习笔记系列总索引 Nodejs学习笔记(一)--- 简介及安装Node.js开发环境 Nodejs学习笔记(二)--- 事件模块 Nodejs学习笔记(三)--- 模块 Nodejs学 ...

随机推荐

  1. xmpp即时通讯协议的特性---长处和缺点!

    xmpp协议的定义? XMPP是一种基于标准通用标记语言的子集XML的协议,它继承了在XML环境中灵活的发展性. 因此.基于XMPP的应用具有超强的可扩展性.经过扩展以后的XMPP能够通过发送扩展的信 ...

  2. 关于DP与背包

    听说过动态规划(DP)的同学应该都知道有背包问题的存在. 首先我们来了解一下动态规划 基本思想: 动态规划算法通常用于求解具有某种最优性质的问题.在这类问题中, 可能会有很多可行解.没一个解都对应于一 ...

  3. luogu 3939 数颜色 - STL(vector)

    传送门 分析: 虽然颜色种类很多,但是所有颜色个数之和n是一定的,这时候就可以使用vector对每个颜色维护一个坐标集合,空间只占n个. 对于查询L,R:直接一行: upper_bound(col[c ...

  4. Web开发四大作用域(转)

    Web开发中的四个域对象(范围由小到大): page(jsp有效)  request(一次请求) session(一次会话) application(当前web应用) page域指的是pageCont ...

  5. MySQL主从复制架构使用方法

    原文:MySQL主从复制架构使用方法 一. 单个数据库服务器的缺点 数据库服务器存在单点问题 数据库服务器资源无法满足增长的读写请求 高峰时数据库连接数经常超过上限 二. 如何解决单点问题 增加额外的 ...

  6. 【BZOJ 1022】 [SHOI2008]小约翰的游戏John

    [题目链接]:http://www.lydsy.com/JudgeOnline/problem.php?id=1022 [题意] [题解] 和这题类似http://blog.csdn.net/harl ...

  7. idea-环境配置

    显示行号 Settings->Editor->Appearance标签项,勾选Show line numbers 关闭导航 在idea14版本中,上面有个代码导航,show breadcr ...

  8. 为什么java的web开发中URLEncoder.encode方法要为什么要调用两次

    一: 我们先看2个编码的情况 String name=java.net.URLEncoder.encode("测试", "UTF-8"); System.out ...

  9. Mapreduce 订单分组案例

    程序执行流程如下: map()-->getPartition()分区--->write()(序列化,每一行都顺序执行这三个方法)--->readFields()---->com ...

  10. iOS 多线程的使用

    iOS 多线程 先看一篇阮一峰写关于进程和线程的文章,快速了解线程的相关概念. 随着现在计算机硬件的发展,多核心.高频率的cpu越来越普及,为了充分发挥cpu的性能,在不通的环境下实现cpu的利用最大 ...