路由是指如何定義應用的端點以及如何響應客戶端的請求
路由是由一個URL、HTTP請求(GET嚼蚀、POST等)和若干個句柄組成,它的結構如下:app.METHOD(path,[callback...],callback), app是express對象的一個實例管挟,METHOD是一個HTTP請求方法驰坊,path是服務器上的路徑,callback是當路由匹配時要執(zhí)行的函數(shù)。
路由方法
下面是一個基本的路由實例:
var express = require('express');
var app = express();
app.get('/',function(req,res){
res.send('Hello world');
})
路由句柄
可以為請求提供多個回調(diào)函數(shù)拳芙,其行為類似中間件察藐。唯一的區(qū)別是這些回調(diào)函數(shù)有可能調(diào)用next('route')方法而略過其他路由回調(diào)函數(shù)≈墼可以利用該機制為路由定義前提條件:
例如:
混合使用函數(shù)和函數(shù)數(shù)組處理路由
var cb0 = function(req,res,next){
console.log('cb0');
next();
}
var cb1 = function(req,res,next){
console.log('cb1');
next();
}
app.get('/example/d',[cb0,cb1],function(req,res,next){
console.log('response will be sent by the next function...');
next();
}, function(req,res){
res.send('Hello from D!');
})
響應方法
下列中響應對象(res)的方法向客戶端返回響應,終結請求響應中的循環(huán)分飞。如果在路由句柄中一個方法也不調(diào)用,來自客戶端的請求會一直掛起睹限。
- res.download() 提示下載文件
- res.end() 終結響應處理流程
- res.json() 發(fā)送一個JSON格式的響應
- res.jsonp() 發(fā)送一個支持JSONP的JSON格式的響應
- res.redirect() 重定向請求
- res.render() 渲染視圖模板
- res.rend() 發(fā)送各種類型的響應
- res.sendStatus() 設置響應狀態(tài)代碼譬猫,并將其以字符串形式作為響應體的一部分發(fā)送。
app.route()
app.route()創(chuàng)建路由路徑的鏈式路由句柄羡疗。