node . js中路由,中间件,通用电气请求和帖子请求的参数详解

  

<强>一、路由

  

1,什么是路由

  

服务器需要根据不同的URL或请求来执行不一样的操作,我们可以通过路由来实现这个步骤

  

2,实现路由的方法

  

2.1,请求访问网址时,做什么事

        app.get(“网址”,函数(点播,res) {      });   之前      

2.2,帖子请求访问网址时,做什么事

        app.post(“网址”,函数(点播,res) {      });   之前      

,2.3,任何请求访问这个网址

        app.all(“网址”,函数(){      });   之前      

,注意:1、“这里的网址不分大小写,例如

        app.get(“/艺术展”,函数(点播,res){//我们访问/也艺术展是可以的   res.send(“你好”);   });   之前      

,2,你路由到/,实际/一个# 63;id=2,性=nan也能被处理。

  

3路由中正则表达式的使用

  

3.1,正则表达式中,未知部分用圆括号分组,然后可以用req.params[0],[1]得到.req。参数类数组对象。

        app.get(学生/^ \/\/(\ d{10})/美元,函数(点播,res) {   res.send(“学生信息,学号“+ req.params [0]);   });   之前      

3.2,冒号写法(推荐)

        var=需要表达(表达);   应用var=表达();//冒1号   app.get(“/学生/:id”,函数(点播,res) {   var id=req.params (" id ");//得到id的值   var reg=/^ \ [d] {6} $/;   如果(reg.test (id)) {   res.send (id);   其他}{   res.send(“请检查格式”);   }      });//冒号2   app.get(“/用户名/:oid”功能(要求,res) {   var用户名=req.params(“用户名”);//得到用户名的值   var oid=req.params (“oid”);//得到//oid的值   res.write(用户名);   res.end (oid);   });   app.listen (3000);   之前      ,运行结果:   

冒号1:

  

 node . js中路由,中间件,通用电气请求和帖子请求的参数详解

  

,冒号2:

  

 node . js中路由,中间件,通用电气请求和帖子请求的参数详解

  

<强>二,中间件

  

1,什么是中间件

  

应用于应用之间,充当连接服务的,例如上面的get、post请求就是中间件

  

2,表达中所有的路由(中间件)的顺序(很重要)

  

2.1, next()方法

        var=需要表达(表达);   应用var=表达();   app.get(“/?函数(下)要求,res, {   console.log (1);   next ();//如果没有下参数,就只会conlose出来,而不会是1、2   });   app.get(“/?函数(点播,res) {   console.log (2);   });   app.listen (3000);   之前      

2.2,顺序冲突:下面这两个路由,看起来没有关系,但其实是有冲突的,因为管理员可以当做用户名登录可以当做id

        var=需要表达(表达);   应用var=表达();   app.get(“/用户名/:id”、功能(要求,res) {   console.log (" 1 ");   res.send(“用户信息”+ req.params.username);   });      app.get (“/admin/登录”,函数(点播,res) {   console.log (“2”);   res.send(“管理员登录”);   });   app.listen (3000)   之前      运行结果:当我们访问172.0.0.1:3000/admin/登录时只会输出,,用户信息admin 而不会是管理员登录   

2.3,解决顺序冲突

  

2.3.1,具体的往上写,抽象的往下写

        var=需要表达(表达);   应用var=表达();//具体的   app.get (“/admin/登录”,函数(点播,res) {   console.log (“2”);   res.send(“管理员登录”);   });//抽象的   app.get(“/用户名/:id”、功能(要求,res) {   console.log (" 1 ");   res.send(“用户信息”+ req.params.username);   });   app.listen (3000)   之前      运行结果:当我们访问172.0.0.1:3000/admin/登录时输出,管理员登录,而不会是用户信息admin    

,2.3.2,检索数据库

        var=需要表达(表达);   应用var=表达();   app.get(“/用户名/:id”,函数(下)要求,res, {   var用户名=req.params.username;//检索数据库,如果用户名不存在,那么下()   如果检索数据库){   console.log (" 1 ");   res.send(“用户信息”)   其他}{   next ();   }   });   app.get (“/admin/登录”,函数(点播,res) {   console.log (“2”);   res.send(“管理员登录”);   });   app.listen (3000)   

node . js中路由,中间件,通用电气请求和帖子请求的参数详解