node之jade和ejs的使用方法 jade篇
let express = require('express');
let consolidate = require('consolidate');
let app = express();
// app.use(express.static('./'));
app.set('views','./go');//设置view层,第二个参数是表示view层的路径
app.set('view engine','html');//添加解析的后缀名
app.engine('html',consolidate.jade); //要解析的文件,用的那个模板引擎去解析。
app.locals = {
name:'wp',
age:
}
app.get('/',(req,res)=>{
// res.render('/index',(err,data)=>{
// console.log(data);
// res.send(data);
// }); //当使用app.set时 其实就是将原来的jade使用方法进行了省略改变
res.render('index');
});
app.listen(,()=>{
console.log('go');
});
jade的html页面的注释书写 必须是以双斜杠// 来书写。
html页面
[html] view plain copy
doctype
html
head
title= pageTitle
script(type='text/javascript').
function showCityEx(city)
{
return city + " & " + city;
} body
//--@test转义;以下几个字符有特殊意义;如果当做文本,必须使用|转义
//--@test转义1: - ,jade代码的开头
//--@test转义2: | ,jade多好文本的开头
//--@test转义3: / ,jade注释的开头
//--@test转义4: = ,jade代码表达式的开头
|- i begin at "-" (use |-prefix in jade)<br/>
||- i begin at "|"(use |-prefix in jade)<br/>
|//--i begin at "//"(use |-prefix in jade)<br/>
|=i begin at "="(use |-prefix in jade) h1 #{h1} #container.col
if name=='liuchuanchuan'
p You are owner!
else
p You are #{name},and you are not owner! //--@test_后台js代码,特别注意缩进相当于括号,以 - 开头--
-var a=new Array()
-for(var i=; i<citys.length; i++)
- a.push(citys[i])
- a[a.length-] = a[a.length-] + "_1"
p old:#{a.length},#{a}
-a.push('qingdao')
p new:#{a.length},#{a}
p
|I had ever goto lots of citys(more than #{a.length}).<br/>
-a.push('chengdu') //--这里的缩进影响是否会新添加一个<P>;这种语法有点扯淡
=(a.length+) + " "
|is my dream!<br/>
|I had ever goto lots of citys(#{a}).
|I like to travel!
|do you? p.
i had go to p= "now length = " + a.length
|<br/>haha
ul
for city in citys
li= city
else
li sorry, no city! //--@test_后台jade代码,特别注意循环的使用--
p this is an example of table.
table(border=)
tr
th hello
th world,citys.count=#{cscores.length + }
th count
for city,index in citys
tr
td= index
td welcome to #{city}(#{city.substr(,)})
td= cscores[index]
div over!
js页面书写
var express = require('express');
var router = express.Router();
var jade = require('jade');
// Compile a function
var fn = jade.compile('hello world #name', {});
// Render the function
var html = fn({name:'liu'});
console.log(html);
// 渲染字符串
var rtn = jade.render('.csser.com hello,#{name}', { name: 'liuchuanchuan' });
console.log(rtn);
// 渲染文件
var city_names = [
'wuhan',
'tianjin',
'beijing',
'shanghai'
];
var city_scores = [
'',
'',
'',
''
];
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { citys: city_names, cscores: city_scores, name:'liuchuanchuan',h1:'who are you'});
});
module.exports = router;
效果页面

node之jade和ejs的使用方法 jade篇的更多相关文章
- 在node.js中使用ejs的demo 第五篇
先说明一下我的项目的目录解构: 本项目中渲染的时候都是通过在index.js页面里面,来使用index.ejs的,首先引用必须的模块: var express = require('express') ...
- Express创建并运行node项目(Jade和EJS模版引擎)
1.创建Node项目 [Jade模板] > express nodeJade express创建项目若不显示指定模板,默认使用Jade,以下写法都可以: express -jade nodeJa ...
- 错误Name node is in safe mode的解决方法 (转)
原文链接:错误Name node is in safe mode的解决方法 将本地文件拷贝到hdfs上去,结果上错误:Name node is in safe mode 这是因为在分布式文件系统启动的 ...
- 使用Node.js给图片加水印的方法
一.准备工作: 首先,确保你本地已经安装好了node环境. 然后,我们进行图像编辑操作需要用到一个Node.js的库:images. 这个库的地址是:https://github.com/zhangy ...
- 好未来数据中台 Node.js BFF实践(一):基础篇
好未来数据中台 Node.js BFF实践系列文章列表: 基础篇 实战篇(TODO) 进阶篇(TODO) 好未来数据中台的Node.js中间层从7月份开始讨论可行性,截止到9月已经支持了4个平台,其中 ...
- Node.js log3:create ejs engine and jade engine
The base condition is ensure that you have installed express. 1.create ejs engine Using windows d ...
- node使用express命令报错找不到ejs的解决方法
首先确定已经全局安装过好几遍express和express-generator,但一使用express命令直接报找不到ejs模块,全局和本地安装ejs都没用,nodemon模块报同样错误,找不到deb ...
- 7、 jade 、 ejs、express集成模板
jade/ejs 模板引擎 http://jade-lang.com/ http://www.nooong.com/docs/jade_chinese.htm SSR 服务器端渲染 服务器生成html ...
- Node.js process 模块常用属性和方法
Node.js是常用的Javascript运行环境,本文和大家发分享的主要是Node.js中process 模块的常用属性和方法,希望通过本文的分享,对大家学习Node.js http://www.m ...
随机推荐
- redis 基本命令
set times 2017.12.12 设置键名键值 get times 获取键名 exists times 检测键名是否存在 type times 键名的类型 expire times 6 ...
- leetcode 131. Palindrome Partitioning 、132. Palindrome Partitioning II
131. Palindrome Partitioning substr使用的是坐标值,不使用.begin()..end()这种迭代器 使用dfs,类似于subsets的题,每次判断要不要加入这个数 s ...
- VsCode插件开发之入门示例
主要参考官网:https://code.visualstudio.com/api/get-started/your-first-extension 其实也就三步 一.安装环境 npm install ...
- AI 机器学习基础
深度学习是机器学习的一个特定分支. 1.学习算法 对于某类任务T和性能度量P, 2.线性回归 3.正规方程(normal equation) 4.监督学习(supervised learning) 5 ...
- SQL 公用表达式CTE
一 基本用法 with mywith as(select * from Student ) select * from mywith 二 递归调用 with mywith as( select ID, ...
- 有哪些操作会使用到TempDB;如果TempDB异常变大,可能的原因是什么,该如何处理(转载)
有哪些操作会使用到TempDB:如果TempDB异常变大,可能的原因是什么,该如何处理:tempdb的用途: 存储专用和全局临时变量,不考虑数据库上下文: 与Order by 子句,游标,Group ...
- 一个有趣的问题——HTTP是“超文本传输协议”还是“超文本转移协议”
最近在看<HTTP图解>这本书,书中提到了对国内对HTTP协议名称的翻译问题,并且给出了一些网友讨论的原稿链接,我看了一下觉得挺有意思的,另外我本人也觉得翻译对于理解协议本身非常重要,就整 ...
- 有关素数判断的一些算法(总结&&对比)
素性测试是数论题中比较常用的一个技巧.它可以很基础,也可以很高级(哲学).这次主要要介绍一下有关素数判断的奇技淫巧 素数的判断主要分为两种:范围筛选型&&单个判断型 我们先从范围筛选型 ...
- [Python]Hamming distance 问题
In [75]: x=4 In [76]: y=1 In [77]: str(bin(x ^ y))[2:].count('1') Out[77]: 2 In [78]: 来自:https://lee ...
- 基于HTML5 Canvas 实现地铁站监控
伴随国内经济的高速发展,人们对安全的要求越来越高.为了防止下列情况的发生,您需要考虑安装安防系统: 提供证据与线索:很多工厂银行发生偷盗或者事故相关机关可以根据录像信息侦破案件,这个是非常重要的一个线 ...