node08---EJS模版

四、模板引擎
<a href="<%= url %>"><img src="<%= imageURL %>" ></a>
数据绑定,就成为一个完整的html字符串了。
前台的模板,我们现在要学习的是后台的模板。
后台模板,著名的有两个,第一个叫做ejs; 第二个叫做jade。

是npm第三方包。

先说EJS
Embedded JavaScript templates
后台模板引擎
    <ul>
        <% for(var i = 0 ; i < news.length ; i++){ %>
            <li><%= news[i] %></li>
        <% } %>
    </ul>
var dictionary = {
          a:6,
          news : ["1期班太牛逼了","高薪就业","哈哈哈哈哈"]
};

14.js

/**
 * Created by Danny on 2015/9/20 16:59.
 */
var ejs = require("ejs");

//模板
var string = "好高兴啊,今天我买了iphone<%= a %>s";
//数据
var data = {
    a : 6
};
//数据绑定
var html = ejs.render(string, data);
//输出
console.log(html);

15.js

/**
 * Created by Danny on 2015/9/20 16:59.
 */
var ejs = require("ejs");
var fs = require("fs");
var http = require("http");

var server = http.createServer(function(req,res){
    fs.readFile("./views/index.ejs",function(err,data){
        //绑定模板
        var template = data.toString();
        var dictionary = {
            a:6,
            news : [
                {"title":"陈伟我爱你","count":10},
                {"title":"哈哈哈哈","count":20},
                {"title":"逗你玩儿的","count":30}
            ]
        };
        var html = ejs.render(template,dictionary);

        //显示
        res.writeHead(200,{"Content-Type":"text/html;charset=UTF8"});
        res.end(html);
    });
});

server.listen(3000);
index.ejs
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <h1>好高兴啊,今天我买了一个iphone<%= a %>s</h1>
    <ul>
        <%
            for(var i = 0 ; i < news.length ; i++){
                if(news[i].count > 15){
        %>
                <li><%= news[i].title %></li>
        <%
                }
            }
        %>
    </ul>
</body>
</html>

EJS模版效率不高,JADE引擎效率高,难度大

时间: 2024-10-12 20:45:23

node08---EJS模版的相关文章

nodejs express框架一个工程中同时使用ejs模版和jade模版

在某些项目中,比如你接手了一个别人的项目然后你不想用蛋疼的ejs,或者你不想用蛋疼的jade.你有不想重写之前的页面,那么你现在可能需要新引入ejs或者jade模块,你仅仅需要做下面两步也许就能完成使用两个模版的工作 1.consolidate.js cd 到项目目录: npm install consolidate --save 打开项目的app.js(也许你的叫其他名字) 把app.js的形如下面的代码片段 app.set('view engine', 'jade'); 改为 var eng

Visual Studio Code For Mac 支持 ejs 模版视窗编辑识别为html

右击 Visual Studio Code 的ICON 显示包含内容,打开如下路径: Visual Studio Code.app/Contents/Resources/app/extensions/html 双击打开 package.json 文件,原始代码: { "name": "html", "version": "0.1.0", "publisher": "vscode", &q

前端独立引用 ejs模版

ejs 用法不再多说,网自行查阅.一个是基于nodeJS平台运行的EJS,另外一个是在浏览器执行的EJS.这里要说的是html 独立引入ejs.min.js 使用的一个注意点. 如:index.html 中引入 <script type="text/javascript" src="../lib/ejs.min.js"></script> 首先要注意的是:这种EJS库,不支持 include 功能.(但有解决方案,方法也我懒得重复,毕竟是别人

node.js的ejs模版引擎

ejs版本是0.8.8,生成的views目录下面只有index.ejs and error.ejs,没有layout.ejs. D:\lianchuangfile\nodeDevelop\microblog\views ejs的老版本0.6.1,生成的views目录下面除了index.ejs and error.ejs,还有layout.ejs.

ejs模版的4种输出方式

ejs模板四种输出方式 在ejs模板中,通常会用下面四种方式在HTML中输出服务端的变量或表达式的值: a. 直接在<%%>中写表达式或变量.这种情况通常只是用来进行表达式计算或给变量赋值,不会有任何输出,被称作无缓冲的代码. <% code %> b. 在<%%>中通过=号输出变量或表达式的值.默认输出到页面中的内容会进行HTML转义.如<div>Hello</div>输出后会变成>lt;div>gt;Hello>lt;/di

最新版EJS的include函数已支持参数传递

最新版的express中partial函数已经被移除,使用include虽然可以实现同样的效果,但是代码看起来很不爽比如 1 <%-partial("user/home",{user:users[0]})%> 使用include写法为 1 <% var user=users[0]; include user/home %> 但是EJS2.0+版本已经支持这样的写法 1 <%-include("user/home",{user:users

express下ejs入门基础

1.express中使用ejs var express = require('express');//需要安装 express var app = express(); app.set("view engine","ejs");//模版引擎设置为 ejs 2.文件组织 在express中使用ejs,文件组织遵循express. .views-------放置动态模版 .public------放置静态网页 .layouts-----放置布局文件 3.基本语法 .&l

在node.js中使用ejs的demo 第五篇

先说明一下我的项目的目录解构: 本项目中渲染的时候都是通过在index.js页面里面,来使用index.ejs的,首先引用必须的模块: var express = require('express'); var router = express.Router(); var fs = require("fs"); var http = require("http"); 把index.json内的数据渲染到index.ejs页面,并且在本地http://localhos

模版+数据分离渲染方式的设计与实现

一 背景 1 现状 模版存放于后端 php输出页面html结构进行页面渲染 ajax请求,需要重渲结构时,php输出html结构 builder制作静态页面结构 jser完成页面交互逻辑开发 2 不足 模版数据无法存储本地,导致每次打开页面请求数据量巨大 数据每次要从接入层web服务器读取,没有合理利用CDN加速静态模版内容 联调成本较大,不利于前端控制页面展示和交互开发 3 解决方案 后端直接输出json数据 试图把渲染页面的模版存放在前端 4 技术路线 5 理论意义 利用CDN保存html模