前一篇通过helloworld,简单介绍了Express中的开发,本篇继续深入的学习express的模板。

关于Jade的用法,网上有很多,本篇参考:Jade语法

安装相关模块

在实验代码前,应该先安装express和jade:

npm install express
npm install jade

简单介绍本篇使用的api

1 为了使用jade,先要设置express默认的模板引擎,用法如下:

app.set('view engine', 'jade');//设置默认的模板引擎

2 如果要进行样式的定义,就要创建静态文件目录,该目录中的内容,可以直接在浏览器中获取到:

app.use(express.static(路径));

比如路径为public,那么我们在访问localhost:3000/pubic/xxxx就可以得到相应的文件。

3 设置视图的对应目录

app.set('views',xxxx);

4 向特定路径的视图返回数据

res.render('视图的路径', { 返回的数据名称:返回的数据内容});

代码预览

创建index.js文件:

var express = require('express');//引入express模块
var app = express();//创建应用 //定义public路径
var pub = __dirname + '/public';
app.use(express.static(pub));//设置静态目录为pubic
app.set('views', __dirname + '/views');//设置views路径映射到views文件夹 app.set('view engine', 'jade');//设置默认的模板引擎 function User(name, email) {
this.name = name;
this.email = email;
} var users = [
new User('tj', 'tj@vision-media.ca'),
new User('ciaran', 'ciaranj@gmail.com'),
new User('aaron', 'aaron.heckmann+github@gmail.com')
]; app.get('/', function(req, res){
res.render('users/test', { users: users });
}); app.use(function(err, req, res, next) {
res.send(err.stack);
}); app.listen(3000);
console.log('Express started on port 3000');

这段代码首先创建了express的应用实例,然后设置相关的静态目录、视图目录、模板引擎等等。

然后创建了几个user对象,返回给特定的视图。

创建模板

创建模板index.jade,注意创建的模版中,只能使用空格来进行格式化。不能同时使用制表符和空格。

doctype html
html
head
title Jade Example
link(rel="stylesheet", href="/stylesheets/style.css") body
h1 Users
#users
for user in users
h2= user.name
.email= user.email

语法参考其他的Jade语法说明即可。

添加样式文件

在静态目录中,添加样式文件style.css:

body {
padding: 50px 80px;
font: 14px "Helvetica Nueue", "Lucida Grande", Arial, sans-serif;
}
.email{
color: blue;
}

文件目录

根目录myqq
\------node_modules
| \-------express
| \-------jade
|
\------public
| \------stylesheets
| \-------style.css
\------views
| \------test
| \------index.jade
index.js

执行node index既可运行样例。

Express开发实例(2) —— Jade模板引擎的更多相关文章

  1. Express全系列教程之(十):jade模板引擎

    一.前言 随着前端业务的不断发展,页面交互逻辑的不断提高,让数据和界面实现分离渐渐被提了出来.JavaScript的MVC思想也流行了起来,在这种背景下,基于node.js的模板引擎也随之出现. 什么 ...

  2. jade模板引擎学习笔记(WebsStorm9.0.3+ nodejs+express+jade)

    jade环境搭建 jade标签写法 jade注释 jade添加类名.id.属性 jade添加脚本,css jade变量 jade多行文本显示 jade流程代码:for,each,while jade流 ...

  3. Express框架之Jade模板引擎使用

    日期:2018-7-8  十月梦想  node.js  浏览:2952次  评论:0条 前段时间讲说了ejs模板引擎,提到了jade的效率等等问题!今天在这里简单提一下jade的使用方式!结合expr ...

  4. 【转】在Express项目中使用Handlebars模板引擎

    原文:http://fraserxu.me/2013/09/12/Using-Handlebarsjs-with-Expressjs/ 最近在用Expressjs做一个项目,前后端都用它来完成.自己之 ...

  5. Jade 模板引擎使用

    在 Express 中调用 jade 模板引擎 jade 变量调用 if 判断 循环 Case 选择 在模板中调用其他语言 可重用的 jade 块 (Mixins) 模板包含 (Includes) 模 ...

  6. 在express站点中使用ejs模板引擎

    在express站点中使用ejs模板引擎 文/玄魂 目录 在express站点中使用ejs模板引擎 前言 1.1         安装 1.2修改app.js 1.3创建测试页面 前言 使用 vs创建 ...

  7. Jade模板引擎使用详解

    在 Express 中调用 jade 模板引擎 jade 变量调用 if 判断 循环 Case 选择 在模板中调用其他语言 可重用的 jade 块 (Mixins) 模板包含 (Includes) 模 ...

  8. nodejs jade 模板 引擎的使用方法

    1.新建项目 2.使用模板引擎 app.set('view engine','jade'); 3.使用render渲染一个视图 res.render(用于指定需要被渲染的视图(必选),本地变量(可选) ...

  9. 初次入坑jade模板引擎(一)

    最近由于工作需要全栈开发,nodejs做后端,在写一个后台管理系统的时候,我一直在考虑用怎样的方式去写,尝试过依然采用前后端分离的结构.使用json数据进行数据交互的模式,但是尝试过才知道,真的很花时 ...

随机推荐

  1. Jenkins/CCNET发送邮件策略和注意事项,以及邮箱类型的选择

    QQ邮箱永远也不要用,原因:安全机制太强导致在CCNET/Jenkins中极难配置,且反垃圾太强,有些项目会涉及到敏感词一样屏蔽,如果发邮件找客服求助时,基本是无果. 如果在免费领域,推荐使用免费企业 ...

  2. Android成长日记-Android布局优化

    Android常用布局 1. LinearLayout(线性布局) 2. RelativeLayout(相对布局) 3. TableLayout(表格布局) 4. AbsoluteLayou(绝对布局 ...

  3. 再次深入探索datasource问题?

    datasource现在几乎每个web框架都会有集成,但是对于数据源的设计原理以及应用上,很少进行深入的研究:实际上数据源也是web框架的核心之一了解一下其内涵还是非常重要的. 数据源(Data So ...

  4. CSS 公共样式分享

    global.css | reset.css(格式化样式) common.css(公共组件样式) layout.css(当前页面样式) 清除全站所有页面的浏览器默认样式,保证在初始样式在所有浏览器下一 ...

  5. codevs 1229 数字游戏(可重集的全排列)

    传送门 Description Lele 最近上课的时候都很无聊,所以他发明了一个数字游戏来打发时间.  这个游戏是这样的,首先,他拿出几张纸片,分别写上0到9之间的任意数字(可重复写某个数字),然后 ...

  6. [Android]Volley的使用

    Volley是Google I/O 2013上提出来的为Android提供简单快速网络访问的项目.Volley特别适合数据量不大但是通信频繁的场景. 优势 相比其他网络载入类库,Volley 的优势官 ...

  7. 公共事件处理函数js库

    var EventUtil = { /* *添加事件处理 参数:元素对象 事件类型 处理函数 */ addHandle: function (element, type, handle) { //do ...

  8. Python ValueError: IO operation on closed file

    ValueError IO operation on closed file表示处理了已经被关闭的数据,在python 中 with语句的上下文会帮助处理,也就是说,当python的处理代码不对齐的时 ...

  9. Notepad++ 开启「切分窗口」同时检视、比对两份文件

    Notepad++ 是个相当好用的免费纯文本编辑器,除了内建的功能相当多之外,也支持外挂模块的方式扩充各方面的应用.以前我都用 UltraEdit 跟 Emeditor,后来都改用免费的 Notepa ...

  10. c#优化

    优化反射 http://kb.cnblogs.com/page/172119/ http://www.2cto.com/kf/201301/182765.html http://blog.sina.c ...