jade:模板引擎,用于生成html
为什么要使用模板引擎:使得应用程序可以动态输出数据到html中。
jade是基于缩进的。
jade的用途:
1)定义页面结构。
2)向页面中输出数据(主要使用两个特殊字符)
a.第一个字符时减号(-),用于告诉随后的代码应当被执行。
b.第二个字符时等号(=),告诉解析器要对代码进行演算,转义,然后输出。
路由:用来定义应用程序中的http请求的最终点的术语。
3)添加get路由:
var express = require('express') , routes = require('./routes')
var app = module.exports = express.createServer();
app.get('/', routes.index);
app.get('/about', function(req, res){
res.send('Hello from the about route!');
});
这样,当页面中请求http://localhost:3000/about时,则想页面中输出:Hello from the about
route!,当页面中请求http://localhost:3000/时,会加载index页面。
4)添加post路由:
app.get('/', routes.index);
app.post('/', function(req, res){
res.send(req.body);
});
当页面请求到来时,会输出所有的内容。
5)视图渲染:把内容作为响应来发送给客户端。
常见的渲染模式是在路由内使用res.render来渲染一个模板并且将本地变量传递给他。
app.get('/',function(req,res){
res.render('index.jade',{title:'my site'});
});
6)路由完整例子:
app.get('/users/:id', function(req, res){
var users = {
1 : {
first_name: 'Keyser',
surname: 'Soze',
address: 'Next door',
facebook_friends: '4'
},
2 : {
first_name: 'Roger',
surname: 'Kint',
address: 'London, England',
facebook_friends: '10000000000000'
}
}
res.render('index.jade', { title: 'User', user: users[req.params.id] });
});
index.jade:
h1 Passing data through to the view layer
h3 First Name
p= user.first_name
h3 Surname
p= user.surname
h3 Address
p= user.address
h3 Facebook Friends
p= user.facebook_friends
在页面中输入:http://localhost:3000/user/1 会看到user1的信息。
7)将数据写入文件中:
var fs = require('fs'),
data = "Some data I want to write to a file";
fs.writeFile('file.txt', data, function (err) {
if (!err) {
console.log('Wrote data to file.txt');
} else {
throw err;
}
});
如果文件不存在,writeFile()方法也会创建文件,而无需单独创建文件。
8)从文件中读取数据:
var fs = require('fs');
fs.readFile('file.txt', 'utf8', function (err, data) {
if (!err) {
console.log(data);
} else {
throw err;
}
});
为什么要使用模板引擎:使得应用程序可以动态输出数据到html中。
jade是基于缩进的。
jade的用途:
1)定义页面结构。
2)向页面中输出数据(主要使用两个特殊字符)
a.第一个字符时减号(-),用于告诉随后的代码应当被执行。
b.第二个字符时等号(=),告诉解析器要对代码进行演算,转义,然后输出。
路由:用来定义应用程序中的http请求的最终点的术语。
3)添加get路由:
var express = require('express') , routes = require('./routes')
var app = module.exports = express.createServer();
app.get('/', routes.index);
app.get('/about', function(req, res){
res.send('Hello from the about route!');
});
这样,当页面中请求http://localhost:3000/about时,则想页面中输出:Hello from the about
route!,当页面中请求http://localhost:3000/时,会加载index页面。
4)添加post路由:
app.get('/', routes.index);
app.post('/', function(req, res){
res.send(req.body);
});
当页面请求到来时,会输出所有的内容。
5)视图渲染:把内容作为响应来发送给客户端。
常见的渲染模式是在路由内使用res.render来渲染一个模板并且将本地变量传递给他。
app.get('/',function(req,res){
res.render('index.jade',{title:'my site'});
});
6)路由完整例子:
app.get('/users/:id', function(req, res){
var users = {
1 : {
first_name: 'Keyser',
surname: 'Soze',
address: 'Next door',
facebook_friends: '4'
},
2 : {
first_name: 'Roger',
surname: 'Kint',
address: 'London, England',
facebook_friends: '10000000000000'
}
}
res.render('index.jade', { title: 'User', user: users[req.params.id] });
});
index.jade:
h1 Passing data through to the view layer
h3 First Name
p= user.first_name
h3 Surname
p= user.surname
h3 Address
p= user.address
h3 Facebook Friends
p= user.facebook_friends
在页面中输入:http://localhost:3000/user/1 会看到user1的信息。
7)将数据写入文件中:
var fs = require('fs'),
data = "Some data I want to write to a file";
fs.writeFile('file.txt', data, function (err) {
if (!err) {
console.log('Wrote data to file.txt');
} else {
throw err;
}
});
如果文件不存在,writeFile()方法也会创建文件,而无需单独创建文件。
8)从文件中读取数据:
var fs = require('fs');
fs.readFile('file.txt', 'utf8', function (err, data) {
if (!err) {
console.log(data);
} else {
throw err;
}
});