Node.js学习笔记10--Express搭网站(2)

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(),将路由控制权交给第二个规则,向后传递。

原文地址:https://www.cnblogs.com/shixiaomiao/p/4970065.html