node Express学习之聊一聊消息中间件

lxf2023-03-17 11:59:01

本文带大家了解一下node中Express的消息中间件介绍一下消息中间件这个概念、消息中间件归类,希望能帮助到大家!

node Express学习之聊一聊消息中间件

Express是一个简单而灵活多变的WebAPP开发架构,可用于迅速地搭建一个作用完整的Web应用软件;作为一个根据Node.js封装形式的顶层服务框架,Express带来了更简约的API,根据消息中间件路由使程序的组织协调更容易。

消息中间件这个概念

消息中间件,就是把要求处理函数开展模块化设计溶解后多个子处理函数,一些例子处理函数可以形成一个消息中间件局部变量;

消息中间件,要在应用软件请求-回应周期内可以浏览要求目标req、回应目标res和next()函数的函数,next()函数公式主要从事将主动权交到下一个消息中间件;假如现阶段消息中间件并没有结束要求,而且next()没被启用,那样要求要被挂起来,后边界定的消息中间件将无法强制执行。、

消息中间件的执行顺序,严格执行申请注册顺序从上向下逐渐配对实行。

消息中间件函数公式,能够实行下列每日任务:

  • 实行一切编码
  • 对请求和响应目标进行调整
  • 结束要求-回应周期时间
  • 调用堆栈中下部一个消息中间件(next)

消息中间件的适用范围便是解决HTTP要求,用于进行特定每日任务如登录状态认证、要求日志、异常处理、Cookie等。

node Express学习之聊一聊消息中间件

消息中间件归类

1 应用软件级消息中间件

应用app.use()函数公式将应用软件级消息中间件关联到运用对象实例

const app = express();
/*表明配对一切路由器*/
app.use(function(req,res,next){
    console.log('要求时长:'    Date.now());
    /*表明配对进行这一消息中间件就再往下实行。*/
    next()
})

2 路由器级消息中间件

路由器级消息中间件与应用软件级消息中间件的工作状态同样,仅仅他们被关联到无线路由器案例

import express from 'express';

const app = express();

const router = express.router();

router.use(
  '/user',
  function (req, res, next) {
    console.log(1);
    next();
  },
  function (req, res, next) {
    console.log(2);
    next();
  },
  function (rex, res, next) {
    console.log(3);
    next();
  }
);

3 异常处理消息中间件

异常处理消息中间件一直必须4个主要参数,需要提供4个主要参数把其标志为异常处理消息中间件函数公式。即便不用next函数,也要特定它。不然next函数被理解为基本消息中间件,而且没法处理错误

app.use(function(err, req, res, next){
    console.log(err.stack);
    res.status(500).send(err);
})

4 内嵌消息中间件

Express主要有以下内嵌消息中间件:

  • express.static: 给予静态资源服务项目
  • express.router: 给予路由器服务项目

5 第三方消息中间件

第三方消息中间件如body-parser、cookie-parser等

6 自定消息中间件

自定消息中间件被定义为一个函数,接纳req,res,next主要参数,应用app.use()申请注册消息中间件

function log(req,res,next) {
    req.requestTime = Date.now();
    next()
}
// 申请注册自定消息中间件
app.use(log);
// 自定可设置消息中间件
function log(options) {
    return function (req,res,next) {
        // 依据options完成消息中间件作用
        next
    }
}

大量node基本知识,请访问:nodejs 实例教程!!

以上就是关于node Express学习之聊一聊消息中间件的具体内容,大量欢迎关注AdminJS其他类似文章!