1.创建路由规则:
例如要创建/hello的页面:
在index.js中添加:
app.get('/hello',funciton( req, res, next ) {
res.send("The server time is "+ new Date().toString());
})
app.get是路由规则创建函数,它接受两个参数,一个路由的路径,另一个参数是一个回调函数,该路由规则被触发时调用回调函数。
2.路径匹配
Express还支持更高级的路径匹配模式,例如:
想要展示一个用户的个人页面,路径为/user/[username]
app.get('/user/:username',function(req,res){
res.send('user: '+req.params.username);
})
路由规则还支持JS正则表达式。
3.REST风格的路由规则
rest意思是: 表征状态转移(Representation State Transfer),它是基于HTTP协议的网络应用的接口风格。
HTTP协议定义了8种标准风格:
其中get,post,delete,put是常用的,特点是:
其中的安全是指: 没有副作用,即请求不会对资源产生变动,连续访问多次所获得的结果不受访问者的影响。
幂等是指: 重复请求多次与一次请求的效果是一样的。
express为每种HTTP请求方式都设计了不同的路由绑定函数
其中:app.all函数支持把所有的请求方式绑定到同一个响应函数,是一个非常灵活的函数。
4.控制权转移
express支持同一个路径绑定多个路由响应函数,但当访问任何被这两条同样的规则匹配到的路径时,请求总是被前一条路由规则捕获。(默认情况下是 先来先得)
原因是:express在处理路由规则时,会优先匹配先定义的路由规则,因此后面相同的规则被屏蔽。
可以通过回调函数的第三个参数next,将路由控制权转移给后面的规则。
通过调用next(),将路由控制权交给第二个规则,向后传递。