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篇的更多相关文章

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

    先说明一下我的项目的目录解构: 本项目中渲染的时候都是通过在index.js页面里面,来使用index.ejs的,首先引用必须的模块: var express = require('express') ...

  2. Express创建并运行node项目(Jade和EJS模版引擎)

    1.创建Node项目 [Jade模板] > express nodeJade express创建项目若不显示指定模板,默认使用Jade,以下写法都可以: express -jade nodeJa ...

  3. 错误Name node is in safe mode的解决方法 (转)

    原文链接:错误Name node is in safe mode的解决方法 将本地文件拷贝到hdfs上去,结果上错误:Name node is in safe mode 这是因为在分布式文件系统启动的 ...

  4. 使用Node.js给图片加水印的方法

    一.准备工作: 首先,确保你本地已经安装好了node环境. 然后,我们进行图像编辑操作需要用到一个Node.js的库:images. 这个库的地址是:https://github.com/zhangy ...

  5. 好未来数据中台 Node.js BFF实践(一):基础篇

    好未来数据中台 Node.js BFF实践系列文章列表: 基础篇 实战篇(TODO) 进阶篇(TODO) 好未来数据中台的Node.js中间层从7月份开始讨论可行性,截止到9月已经支持了4个平台,其中 ...

  6. 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 ...

  7. node使用express命令报错找不到ejs的解决方法

    首先确定已经全局安装过好几遍express和express-generator,但一使用express命令直接报找不到ejs模块,全局和本地安装ejs都没用,nodemon模块报同样错误,找不到deb ...

  8. 7、 jade 、 ejs、express集成模板

    jade/ejs 模板引擎 http://jade-lang.com/ http://www.nooong.com/docs/jade_chinese.htm SSR 服务器端渲染 服务器生成html ...

  9. Node.js process 模块常用属性和方法

    Node.js是常用的Javascript运行环境,本文和大家发分享的主要是Node.js中process 模块的常用属性和方法,希望通过本文的分享,对大家学习Node.js http://www.m ...

随机推荐

  1. PHP开发小技巧③—实现多维数组转化为一维数组

    在平常的项目开发中我们多会用到让多维数组转化为一维数组的情况,但是很多Programmer不会将其进行转化,也有些没有想到很好的算法然后经过乱起八糟的运算方式将其勉强转化好,但是所写的程序代码冗余非常 ...

  2. php 对象数组互转

    数组转对象 function array2object($array) {   if (is_array($array)) {     $obj = new StdClass();     forea ...

  3. Arduino IDE for ESP8266教程(四)网页控制灯 简单页面

    修改ssid和passwd,将程序烧写到8266上,等待串口返回连接成功的消息,连接成功之后可以看到返回有一个ip地址,使用浏览器方位这个ip地址就可以看到这个消息: 连接路由器后,返回IP地址 19 ...

  4. Domain Adaptation (3)论文翻译

    Abstract The recent success of deep neural networks relies on massive amounts of labeled data. For a ...

  5. Mybatis集成(转)

    文章转自http://blog.csdn.net/l454822901/article/details/51829653 什么是Mybatis MyBatis 本是apache的一个开源项目iBati ...

  6. 【Codeforces 1129C】Morse Code

    Codeforces 1129 C 题意:给一个0/1串,问它的每一个前缀中的每一个子串能解析成莫尔斯电码的串的种数. 思路:首先对于这个串构造后缀自动机,那么从起点走到每一个节点的每一条路径都代表了 ...

  7. WPF 滚动文字控件MarqueeControl

    原文:WPF 滚动文字控件MarqueeControl WPF使用的滚动文字控件,支持上下左右滚动方式,支持设置滚动速度 XAML部分: <UserControl x:Class="U ...

  8. Solr数据库导入

    Solr数据库导入 1.在MySQL中创建一张表t_solr,并插入测试数据. 2.把E:\Solr\solr-4.10.4\example\example-DIH\solr\db\conf下的adm ...

  9. Ubuntu轻松编译openJDK

    花了三天在windows上搞openJDK,对bash本来就不熟,加上各种莫名依赖和脚本里的bug,身心俱疲.最后make all的时候产生一个莫名其妙的错误说什么有warning且-Werror置为 ...

  10. Flutter - TabBar导航栏切换后,状态丢失

    上一篇讲到了 Flutter - BottomNavigationBar底部导航栏切换后,状态丢失 里面提到了TabBar,这儿专门再写一下吧,具体怎么操作,来不让TabBar的状态丢失.毕竟大家99 ...