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

相关推荐
先吃饱再说14 小时前
从“地狱”到“楼梯”再到“同步写法”:Node.js 异步的二十年与Node内置fs模块详解
node.js
知识收割者14 小时前
Nodejs也能写Agent - 10.LangChain篇 - 初识LangChain
node.js
HjhIron15 小时前
Node.js 内置模块之 path 与 fs:从路径拼接到异步演进
node.js·promise
触底反弹16 小时前
🚀 Node.js path 和 fs 模块,从回调地狱到 async/await 的进化之路!
javascript·后端·node.js
sugar__salt16 小时前
Node.js path 与 fs 核心模块完全指南 —— 从路径处理到异步流程控制
javascript·node.js
屑曦晨17 小时前
npm 全局包迁移指南:从系统目录到用户目录
npm·node.js
纸小铭18 小时前
[MAF预定义ChatClient中间件-01]LoggingChatClient——在调用LLM前后输出日志
python·中间件·flask
moMo18 小时前
Node.js 文件操作:path 路径与 fs 异步流程
node.js
拾年27518 小时前
Node.js 异步进化论:从 path 路径拼接到 fs 文件读取,我终于理解了回调地狱的救赎之路
前端·node.js
小粉粉hhh19 小时前
Node.js(五)——编写接口
前端·javascript·node.js