当前位置: 首页 > news >正文

express中间件(java拦截器)

1.什么是中间件

可以把共同需要的模块都封装起来

2.日志记录案例(全局中间件案例)

假设我们现在要记录进入首页的url和ip,那我们必须在两个路由里的回调函数里写相同的内容,那我们,可以先在外头在进入路由处理之前,先把共同工作做好,减少代码量

const express = require('express');
const fs=require('fs');
const path=require('path');
const app = express();
//定义全局中间件
function  middle(req,res,next){let {url,ip}=req;fs.appendFileSync(path.resolve(__dirname,'./enter.log'),`${url} ${ip}\r\n`);//next用于继续执行路由后面的回调函数next();
}
//使用中间件函数
app.use(middle);
app.get('/home', (req, res) => {res.send('首页');
})app.get('/bank',(req,res)=>{res.send('后台首页');
})//监听端口,启动服务
app.listen(3000, () => {console.log('服务启动');})

3.路由中间件案例(局部中间件)

3.1路由放行

在某些情况下我们只针对某些路由进行处理,并不需要全部处理,如果这个路由符合规则,如果中间件认为这个请求是合法的、可以继续处理的,就调用 next(),让请求“通过”

案例要求

const express = require('express');
const fs=require('fs');
const path=require('path');
const app = express();
//定义全局中间件
let middle=(req,res,next)=>{if(req.query.code==='521'){next();//查询正确 放行继续执行之后的回调函数}else res.send('暗号错误');
}
app.get('/home', (req, res) => {res.send('首页');
})app.get('/bank',middle,(req,res)=>{res.send('后台首页');
})app.get('/setting',middle,(req,res)=>{res.send('设置')
})
app.all('/{*splat}',(req,res)=>{res.end('<h1>404 not found</h1>');
})
//监听端口,启动服务
app.listen(3000, () => {console.log('服务启动'); })

4.静态资源中间件

语法

案例

const express = require('express');
const fs = require('fs');
const path = require('path');
const app = express();
//静态资源中间
app.use(express.static(__dirname+'/public'));
app.get('/home', (req, res) => {res.send('首页');
})//监听端口,启动服务
app.listen(3000, () => {console.log('服务启动');})

注意事项

5.练习

http://www.dtcms.com/a/519481.html

相关文章:

  • [人工智能-大模型-57]:模型层技术 - 软件开发的不同层面(如底层系统、中间件、应用层等),算法的类型、设计目标和实现方式存在显著差异。
  • RHEL_2_部署 chrony服务器
  • 视频分析软件机动车识别
  • 中间件面试题
  • 中间件实现任务去重与精细化分发:设计模式与常见陷阱
  • (补)CNN 模型搭建与训练:PyTorch 实战 CIFAR10 任务的应用
  • spring篇:一文读懂spring:工作原理之核心技术解析
  • docker 原理
  • 龙岩网站开发较好的公司王战山
  • vllm论文中figure3每个块的区别
  • 西安营销网站建设公司厦门建设局官网
  • 机器视觉的锂电池叠片应用
  • Rhino(犀牛)转换为 3DXML 全指南:迪威模型网在线实操 + 本地方案
  • react报错Cannot find module ‘ajv/dist/compile/codegen‘
  • uv如何配置阿里云源在 pyproject.toml 中 或在 uv.toml 中
  • 【算法】排序算法汇总1
  • 学习笔记 | 图论基础
  • 苏州要服务网站建设视频网站建设多少钱
  • Flink 使用 RocksDB 作为状态后端存储的原因详解
  • 历经一载编程路,褪去青涩踏新程
  • 面试随想录4:吉贝克后端
  • 使用Python操作你的手机(Appium入门)
  • Spire.Doc 实践指南:将Word 文档转换为 XML
  • 【2B篇】阿里通义 Qwen3-VL 新增 2B、32B 两个模型尺寸,手机也能轻松运行
  • 目标检测YOLO实战应用案例100讲-基于多模态和多模型融合 的三维目标检测
  • 【成长纪实】从“Hello World”到分布式实战的进阶之路
  • 图论理论基础(1)
  • 开源 Linux 服务器与中间件(十)Mqtt协议和Emqx服务器安装测试
  • 网站建设实践鉴定手机网站建设讯息
  • 网站管理文档怎么写晚上睡不着看点害羞的东西app