深入浅出Node.js中间件机制

我们用一个实际的例子来看看中间件是如何运作的。假设我们有一个非常简单的Express应用,它只有两个中间件函数:

复制代码
const express = require('express');
const app = express();

app.use((req, res, next) => {
   
  console.log('第一个中间件');
  next();
});

app.use((req, res, next) => {
   
  console.log('第二个中间件');
  res.send('Hello World!');
});

app.listen(3000, () => {
   
  console.log('服务器运行在3000端口');
});

在这个例子中,当一个请求到达服务器时,首先会触发第一个中间件,打印出"第一个中间件"。然后,通过调用next()函数,控制权传递给下一个中间件,打印出"第二个中间件",并发送一个响应给客户端。

这种链式调用的模式使得中间件可以按需添加或移除,而不会影响到其他部分的代码。这就像是拼装积木一样,你可以根据需要选择不同的积木块(中间件),构建出符合你需求的应用程序。

此外,中间件还可以根据特定的条件来决定是否执行。例如,你可以创建一个只在生产环境中运行的日志记录中间件,或者一个仅在请求来自特定IP地址时才激活的安全检查中间件。这种灵活性使得中间件成为了Express框架的核心特性之一。

相关推荐
做运维的阿瑞3 小时前
Windows 环境下安装 Node.js 和 Vue.js 框架完全指南
前端·javascript·vue.js·windows·node.js
你的人类朋友7 小时前
【Node】Node.js 多进程与多线程:Cluster 与 Worker Threads 入门
前端·后端·node.js
谢尔登7 小时前
【Nest】日志记录
javascript·中间件·node.js
HWL567917 小时前
输入框内容粘贴时   字符净化问题
前端·vue.js·后端·node.js
SirLancelot11 天前
MinIO-基本介绍(一)基本概念、特点、适用场景
后端·云原生·中间件·容器·aws·对象存储·minio
. . . . .2 天前
Node.js 的替代品Bun
node.js
一只月月鸟呀2 天前
AI使用 Node.js modbus-serial 搭建一个可交互的 Modbus TCP 主站与从站 Demo
网络协议·tcp/ip·node.js
学渣y2 天前
nvm下载node版本,npm -v查看版本报错
前端·npm·node.js
灰太狼大王灬2 天前
Node.js 本地服务部署、常驻及调用完整笔记
笔记·node.js
你的电影很有趣3 天前
lesson71:Node.js与npm基础全攻略:2025年最新特性与实战指南
前端·npm·node.js