Node.js初学之Express中间件(2)

1.中间件的分类

        Express官方把常见的中间件用法,分成了5大类,分别是:

                1.应用级别的中间件

                2.路由级别的中间件

                3.错误级别的中间件

                4.Express内置的中间件

                5.第三方的中间件

2.应用级别的中间件

        通过app.use()app.get()app.post(),绑定到app实例上的中间件,叫做应用级别的中间件。

// 应用级别的中间件(全局中间件)
app.use((req,res,next)=>{
    next()
})
// 应用级别的中间件(局部中间件)
app.get('/', mw1, (req, res) => {
    res.send('Home Page.')
})

3.路由级别的中间件

        绑定到express.Router()实例上的中间件,叫做路由级别的中间件。它的用法和应用级别中间件没有任何区别。只不过,应用级别中间件是绑定到app实例上,路由级别中间件绑定到router实例上

var express = require('express')
var router = express.Router()


//路由级别的中间件
router.use(function(req,res,next){
    console.log('Time:',Date.now())
})

app.use('/',router)

3.错误级别的中间件

        错误级别中间件的作用:专门用来捕获整个项目中发生的异常错误,从而防止项目异常崩溃的问题。

        格式:错误级别中间件的function处理函数中,必须有4个形参,形参顺序从前到后,分别是(err,req,res,next)

app.get('/',function(req,res){                //1.路由
    throw new Error('服务器内部发生错误')      //1.1抛出一个自定义的错误
    res.send('Home Page.')
})    


app.use(function(err,req,res,next){            //2.错误级别的中间件
    console.log('发生了错误:' + err.message)     //2.1在服务器打印错误消息
    res.send('Error' + err.message)            //2.2向客户端响应错误相关的内容
})

4.Express内置中间件

        自Express4.16.0版本开始,Express内置了3个常用的中间件.

                1.express.static快速托管静态资源的内置中间件,例如:HTML文件、图片、CSS样式等(无兼容性)

                2.express.json解析JSON格式的请求数据(有兼容性,仅在4.16.0+版本可用)

                3.express.urlencoded解析URL-encoded格式的请求数据(有兼容性,仅在4.16.0+版本中可用)

//配置解析 application/json 格式数据的内置中间件

app.use(express.json())

//配置解析 application/x-www-from-urlencoded 格式数据的内置中间件

app.use(express.urlencoded({ extended:false}))

5.第三方的中间件

        非Express观风内置的,而是由第三方开发出来的中间件,叫做第三方中间件。在项目中,可以按需下载并配置第三方中间件,提高项目开发效率。

        例如:在express@4.16.0之前的版本中,经常使用body-parser这个第三方中间件,来解析请求体数据。

        使用第三方中间件的步骤如下:

                1.运行npm install   body-parser( 中间件名 )                       安装中间件

                2.使用requiref导入中间件

                3.调用app.use()注册并使用中间件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值