中间件

作者: 未vv | 来源:发表于2019-01-23 10:45 被阅读0次

1.中间件就是匹配路由之前和匹配路由之后做的一系列操作

2.应用级中间件

使用app.use() 和 app.methods(get、post、put等)将应用级中间件绑定到app实例上
如果当前的中间件功能没有结束请求-响应周期,则必须调用next()将控制权传递给下一个中间件功能。否则,该请求将被挂起。

匹配所有路由

app.use(function(req,res,next){//匹配所有路由
    console.log(new Date())  //每次匹配路由之前都会打印当前日期
    next()   //路由继续向下匹配
})

匹配单个路由

app.use('/news',function(req,res,next){
    console.log('匹配的单个路由,只匹配news路由')
    next()
})
app.get('/news',function(req,res){
   res.send('news路由')
})

此示例显示了/user/:id路径上安装的中间件功能。该函数针对/user/:id路径上的任何类型的HTTP请求执行。

app.use('/user/:id', function (req, res, next) {
  console.log('Request Type:', req.method)
  next()
})

3.路由中间件

app.get('/test',function(req,res){
    console.log('路由中间件')
})
app.get('/test',function(req,res){
    res.send('test')
})

上面的代码在打印test之后不会继续向下匹配,这时就需要路由中间件

app.get('/test',function(req,res.next){
    console.log('路由中间件')
    next()
})
app.get('/test',function(req,res){
    res.send('test')
})

4.错误处理中间件(需要写在最下面,即其它路由匹配之后)

app.use((req,res)=>{
    res.status(404).send('这时404表示路由没有匹配到')
})

5.内置中间件

托管静态页面

app.use(express.static('public'))

配置虚拟目录

app.use('/static',express.static('public'))

6.第三方中间件

body-parser中间件(处理post请求)
1.安装

npm install body-parser --save

2.引入模块

const bodyParser = require('body-parser')

3.配置

// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
 
// parse application/json
app.use(bodyParser.json())

例:

app.get('/login',function(req,res){
    res.render('login')
})

app.post('/dologin',function(req,res){
    console.log(req.body)  //{ username: 'jiangwei', pwd: '123456' }
})

login.ejs

    <form action="/dologin" method="post">
        用户名:<input type="text" name="username"><br/>
        密  码: <input type="password" name="pwd"><br/>
        <input type="submit" value="提交">
    </form>

相关文章

  • 翻译

    Laravel 的路由中间件 简介 创建中间件 注册中间件全局中间件为路由指定中间件中间件组 中间件参数 Term...

  • 中间件学习——具体分类

    中间件分为远程过程调用中间件、数据访问中间件、消息中间件、事务(交易)处理中间件、分布式对象中间件。 远程过程调用...

  • nodejs19-express中间件

    中间件 匹配路由之前和之后做的操作 应用级中间件 路由级中间件 错误处理中间件 内置中间件 第三方中间件 应用级中...

  • 4.3KOA 中间件模块化与中间件合成

    中间件模块化与中间件合成 一、中间件模块化 定义中间件模块 使用中间件模块 二、使用 koa-compose 模块...

  • 4.2KOA 中间件执行流程

    中间件执行流程 代码执行流程 中间件 1 开始执行中间件 2 开始执行执行内容中间件 2 结束执行中间件 1 结束...

  • 13.中间件和上下文处理器

    中间件 中间件的引入image.png django中的中间件django 中的中间件(middleware),在...

  • Express学习

    使用中间件 Express 应用可使用如下几种中间件:* 应用级中间件* 路由级中间件* 错误处理中间...

  • Express 中间件

    中间件的概念 什么是中间件 中间件(Middleware),特指业务流程的中间处理环节。 Express 中间件的...

  • Scrapy爬虫框架(七) ------ 下载中间件(Midd

    1. Spider 下载中间件(Middleware) Spider 中间件(Middleware) 下载器中间件...

  • laravel api设置Accept 头

    一、创建中间件设置Accept 头 生成中间件 设置Accept头 将中间件添加到api中间件组中

网友评论

      本文标题:中间件

      本文链接:https://www.haomeiwen.com/subject/zgadjqtx.html