13.路由

  1.express中的路由指客户端的请求与服务器处理函数间的映射关系

  2.express中的路由由请求的类型,请求的URL地址,处理函数组成

  3.app.METHOD(PATH,HANDLER)

  4. 路由匹配顺序  a.按照定义的先后顺序进行匹配 b.请求类型和请求地址同时匹配成功才会调用相应的处理函数

14.模块化路由

  1.创建路由模块对应的.js文件,

  2.调用express.Router()函数创建路由对象

  3.向路由对象上挂载具体的路由

  4.使用module.exports向外共享路由对象

  5.使用app.use()函数注册路由模块

15.app.use()函数的作用是全局注册中间件

16.路由模块添加前缀 app.use('/api',router)

17.中间件

  a.对请求的预处理,本质是function处理函数。中间件函数的形参列表中,必须包含next参数,而路由函数中只包含res,req

  b.next()函数是实现多个中间件连续调用的关键,他表示把流转关系转交给下一个中间件或者路由

  c.全局中间件 app.use(rt) 、局部生效中间件(不适用app.use()定义的中间件)

  d.中间件作用,共享一份req和res,基于这样的特性,我们可以在上游的中间件中,统一为req或res填加自定义的属性或者方法,供下游的中间件或路由进行使用

18.中间件使用注意事项

  a.中间件要在路由之前定义

  b.一个中间件可以有多个处理函数

  c.执行中间件以后调用next()

  d.为了防止代码混乱,next()函数后不写额外的代码

  e.连续调用多个中间件时,多个中间件之间,共享req和res对象

19.中间件的分类

  a.应用级别中间件(绑定到app.use())

  b.路由级别中间件(绑定到express.Router())

  c.错误级别中间件(必须有四个参数,(err,req,res,next),捕获错误,防止应用崩溃),需要注册在所有路由之后

  e.express内置中间件(express.static、express.json、express.urlencodeed)

  f.第三方中间件

20.自定义中间件,步骤:

  a.定义中间件

  b.监听req的data事件

  c.监听req的end事件

  d.使用querystring模块解析请求数据

  e.将解析出来的数据对象挂载为req.body

  f.将自定义的中间件封装为模块

最新文章

  1. hadoop启动是常见小问题
  2. Bimmap 成像用bitblt 缩放问题
  3. kali基本设置
  4. NUGet的诞生与使用
  5. Oracle中的索引详解
  6. iPhone播放音乐
  7. sql server smo
  8. 标准I/O之实现细节
  9. ★10 个实用技巧,让Finder带你飞~
  10. deeplearning.ai 改善深层神经网络 week2 优化算法 听课笔记
  11. [Swift]LeetCode783. 二叉搜索树结点最小距离 | Minimum Distance Between BST Nodes
  12. day13 内置函数一
  13. select下拉option跳转页面
  14. 2.对于所有对象都通用的方法_EJ
  15. 第28月第23天 lineFragmentPadding
  16. jupyter修改根目录
  17. 基于 CoreText 实现高性能 UITableView
  18. A+B+C问题
  19. JVM知识(二):类加载器原理
  20. 声音处理(Cool Edit)

热门文章

  1. JavaSE——金额转换
  2. 错误:/etc/sudoers: syntax error near line
  3. 电商项目maven框架搭建引入dubbo配置文件报错
  4. Angular JS入门 (一)事件监听(二)多控制器思想与模块化编程(三)路由router
  5. Docker部署netdata 性能实时监控
  6. .net code 3.0 获取配置文件 json 和 config 中的值
  7. 12组-Beta冲刺-4/5
  8. Neo4J之Cypher 第三章
  9. 23_webpack_TreeShaking
  10. Word运行 没有注册类