Express开发实例(2) —— Jade模板引擎

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

关于Jade的用法,网上有不少,本篇参考:Jade语法html

安装相关模块

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

npm install express
npm install jade

简单介绍本篇使用的api

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

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

2 若是要进行样式的定义,就要建立静态文件目录,该目录中的内容,能够直接在浏览器中获取到:github

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

好比路径为public,那么咱们在访问localhost:3000/pubic/xxxx就能够获得相应的文件。express

3 设置视图的对应目录npm

app.set('views',xxxx);

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

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的应用实例,而后设置相关的静态目录、视图目录、模板引擎等等。app

而后建立了几个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既可运行样例。

相关文章
相关标签/搜索