深入浅出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框架的核心特性之一。

相关推荐
清风9159386295 小时前
告别Token账单无底洞:OpenClaw本地部署,重塑企业数据主权的唯一解
node.js·ollama·openclaw ai智能体·openclaw本地部署·openclaw硬件配置·ultralab
0xDevNull6 小时前
Windows系统使用nvm实现多版本切换Node.js详细教程
windows·node.js
胡哈7 小时前
MCP (Model Context Protocol) 原理与实战
node.js·mcp
蛊明10 小时前
Win11 如何下载安装 Node.js
node.js
Bruce1231 天前
openclaw学习日常(一)openclaw在WSL中搭建
人工智能·node.js
Hommy881 天前
【开源剪映小助手-客户端】桌面客户端
python·开源·node.js·github·剪映小助手
走粥1 天前
node.js 中的 express 框架 - 基础到进阶
node.js·express
qq_229058011 天前
使用nvm安装node12 以及对应的NPM6.14.16
node.js
zhensherlock1 天前
Protocol Launcher 系列:Mail Assistant 轻松发送 HTML 邮件
前端·javascript·typescript·node.js·html·github·js
旺王雪饼 www2 天前
《Express框架深度解析:从基础入门到高级实践与项目架构》
前端·node.js·express