Node.JS练成记 路由器 中间件..

153 阅读2分钟

早上拔完牙麻药劲还没过呢,就开始下面的Node.js,一点舍不得休息,这也是我听得迷迷糊糊,但上课该记的一点都不耽误,晚上得重新在看一遍视频了,在把该敲的代码在过一遍,Nl

传参方式格式路由中获取
get传递http://127.0.0.1:8080/mysearch?keyword=笔记本req.query{keyword:'笔记本'}
路由传参http://127.0.0.1:8080/package/expressreq.params{pname:express}
post传递以流的形式,URL不可见传递大的文件(数据)通过事件获取req.on('data', (c)=>{   c获取的参数,格式为buffer   c.toString()   转为字符串   user=tao&pwd=123456 需要转为对象})

 

网址:www.expressjs.com.cn

 

一.路由器

 路由器是用来管理路由,最终路由器被WEB服务器使用

 每个路由器是一个自定义模块

  image.png

使用步骤:

路由器

//引入express

const r=express.Router();//创建路由器对象

//往路由器添加路由

module.exports=r; //暴露(导出)路由器对象

web服务器

//使用路由器,添加前缀

app.use( 添加的前缀, 引入的路由器 )

二.中间件

 拦截对WEB服务器的请求

 分为应用级中间件、路由级中间件、内置中间件、第三方中间件、错误处理中间件

1.应用级中间件

  也称为自定义中间件,一旦拦截到请求,自动调用函数

unction  fn(req,res,**next**){
  next()  //往后执行下一个中间件或者路由
}
app.use( 要拦截的URL, fn )

2.路由级中间件

  路由器的使用

  app.use(要拦截的URL, 路由器)

3.内置中间件

  静态资源:包括html,css,js,图形,视频,声音...

  托管静态资源:客户端请求静态资源,不需要通过路由响应,而是自动查找资源

  app.use( express.static(托管的目录) )

4.将post传递的参数转为对象

  app.use( express.urlencoded({
  extended: false
 //是否使用扩展的qs转为对象  true->使用  false->不适用
}) );
路由获取
req.body