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...");
});
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端