node---express中间件

1.2.1 app.use中间件用法
  • app.use匹配所有的请求方法,可以直接传入请求处理函数,代表接收所有的请求

  • app.use 第一个参数可以省略,省略时表示匹配所有的请求,当传入请求地址时,代表无论什么请求方式,只有是这个地址就接收这个请求

  • // 接收所有请求的中间件
    app.use((req, res, next) => {
      console.log('执行了app.use中间件');
      next()
    })
    // 当客户端访问 / index请求的时候会执行当前中间件
    app.use('/index', (req, res, next) => {
      console.log('执行了app.use/index中间件');
      next()
    })
    
1.2.2 中间件应用
  • 路由保护,客户端在访问需要登录的界面时,可以先使用中间件判断用户登录状态,用户如果未登录,则拦截请求,直接响应,禁止用户进入需要登录的界面

    • app.use('/admin', (req, res, next) => {
        let isLogin = true
        if (isLogin) {
          next()
        } else {
          res.send('未登录,请登录')
        }
      })
      app.get('/admin', (req, res) => {
        res.send('用户已登录,可以访问当前页面')
      })
      
  • 网站维护公告,在所有路由的最上面定义接收所有请求的中间件,直接为客户端做出响应,网站正在维护中

  • 自定义404页面

1.2.3 错误处理中间件
  • 在程序执行的过程中,不可避免的会出现一些无法预料的错误,比如文件读取失败,数据库连接失败。

  • 错误处理中间件是一个集中处理错误的地方

    app.use((err,req,res,next)=>{
        res.ststus(500).send('服务器发生未知错误')
    })
    
  • 当程序出现错误时,调用next()方法

    app.get("/", (req,res,next)=>{
        fs.readFile("/file", (err,data)=>{
            if(err){
                next(err);
            }
        })
    })
    
1.2.4 捕获错误
  • 可以使用try catch 捕获异步函数以及其他同步代码在执行过程中发生的错误

猜你喜欢

转载自blog.csdn.net/weixin_43950643/article/details/105970274