Express 中间件 自定义中间件 record

 

Express 中间件 自定义中间件

express中间件其实就是一个指定了参数的函数
中间件通过use方法使用,中间件的执行是同步的,取决于在参数列表中的顺序

Express中间件类型

  • Express 应用级中间件
  • 路由级中间件
  • 错误处理中间件
  • 内置中间件 express.static 唯一内置中间件。提供静态资源管理
  • 第三方中间件 app.use 加载用于处理http请求的中间件

官方文档给中间件的定义

  • 执行任何代码
  • 改变request和response对象。即可以拿到请求对象,从而更改请求和响应对象
  • 执行或者结束请求响应周期。
  • 调用栈中的下一个中间件。

测试中间件的执行顺序

const express = require('express');
const path = require('path');
const app = express();

//中间件
var myLogger = function(req,res,next){
    console.log('log...');
    //转向下一个路由或者中间件,如果注掉代码会卡在这里,没有放行
    next();
}

var requestTime = function(req,res,next){
    console.log(new Date().getTime());
    next();
}

//use应用中间件,执行顺序取决于参数列表顺序
app.use(requestTime,myLogger);

app.listen(3000,()=>{
    console.log("server run at port 3000...");
});
效果

自定义中间件

在一个js文件写个函数然后导出,在express中调用即可
self.js

module.exports = function(){
    return function (req, res, next) {
        console.log("self middleware run ~~~");
        next();
    }
}

app.js

const express = require('express');
const self = require('./4self')();
const app = express();

//中间件
var myLogger = function(req,res,next){
    console.log('log...');
    //转向下一个路由或者中间件,如果注掉代码会卡在这里,没有放行
    next();
}

var requestTime = function(req,res,next){
    console.log(new Date().getTime());
    next();
}

//use应用中间件,执行顺序取决于参数列表顺序
app.use(requestTime,myLogger,self);

app.listen(3000,()=>{
    console.log("server run at port 3000...");
});

效果

posted @   IslandZzzz  阅读(313)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示