当前位置: 首页> 房产> 家装 > 广州网络推广专员_互联网官网_石家庄网络营销网站推广_免费网站优化排名

广州网络推广专员_互联网官网_石家庄网络营销网站推广_免费网站优化排名

时间:2025/7/11 23:48:36来源:https://blog.csdn.net/2402_84971234/article/details/146921723 浏览次数:1次
广州网络推广专员_互联网官网_石家庄网络营销网站推广_免费网站优化排名

目录

Node.js 中间件的分类与详细介绍

1. 目录结构

2. Express 中间件的主要分类

3. 代码实现

1. 应用级中间件(作用于整个应用)

示例:日志记录中间件

2. 路由级中间件(仅作用于特定路由)

示例:身份验证中间件

3. Express 内置中间件(无需额外安装)

示例:解析 JSON 请求体

4. 第三方中间件(如 cors, morgan)

示例:使用 cors 允许跨域请求

5. 错误处理中间件(用于捕获错误)

示例:全局错误处理中间件

4. 总结


在 Node.js 的 Express 框架中,中间件是用于处理请求和响应的核心机制。中间件的作用包括日志记录、请求解析、权限验证、错误处理等。本文将详细介绍 Express 框架中间件的主要分类,并提供完整的代码示例,帮助开发者更好地理解和应用中间件。


1. 目录结构

/your-project├── app.js                # 主文件,启动应用├── middleware│   ├── logger.js         # 应用级中间件(日志记录)│   ├── auth.js           # 路由级中间件(身份验证)│   ├── requestTime.js    # 内置中间件(解析请求时间)│   ├── notFound.js       # 404 处理中间件│   ├── errorHandler.js   # 错误处理中间件└── package.json          # 依赖管理文件

2. Express 中间件的主要分类

Express 框架中的中间件主要分为以下几类:

  1. 应用级中间件(作用于整个应用)

  2. 路由级中间件(仅作用于特定路由)

  3. 内置中间件(Express 提供的官方中间件)

  4. 第三方中间件(社区开发的功能增强中间件)

  5. 错误处理中间件(专门用于捕获和处理错误)


3. 代码实现

1. 应用级中间件(作用于整个应用)

应用级中间件适用于全局处理,如日志记录、权限验证等,通常使用 app.use() 注册。

示例:日志记录中间件

文件名:middleware/logger.js

// middleware/logger.js
const logger = (req, res, next) => {console.log(`Received ${req.method} request for ${req.url}`);next(); // 继续执行下一个中间件或路由处理
};module.exports = logger;

app.js 中使用:

// app.js
const express = require('express');
const app = express();
const logger = require('./middleware/logger');// 全局使用日志中间件
app.use(logger);app.get('/', (req, res) => {res.send('<h1>Home Page</h1>');
});app.listen(3000, () => {console.log('Server running on http://localhost:3000');
});

运行结果:
访问 http://localhost:3000/ 时,终端输出:

Received GET request for /

2. 路由级中间件(仅作用于特定路由)

路由级中间件通常用于身份验证、权限控制等功能。

示例:身份验证中间件

文件名:middleware/auth.js

// middleware/auth.js
const auth = (req, res, next) => {if (req.query.auth === 'true') {next(); // 通过验证,继续执行} else {res.status(403).send('<h1>Access Denied</h1>');}
};module.exports = auth;

app.js 中使用:

const auth = require('./middleware/auth');app.get('/dashboard', auth, (req, res) => {res.send('<h1>Welcome to the Dashboard</h1>');
});

运行结果:
访问 http://localhost:3000/dashboard?auth=true

Welcome to the Dashboard

访问 http://localhost:3000/dashboard

Access Denied

3. Express 内置中间件(无需额外安装)

Express 提供了一些内置的中间件,如 express.json()express.urlencoded()express.static()

示例:解析 JSON 请求体

app.js 中添加:

app.use(express.json());app.post('/data', (req, res) => {res.json({ received: req.body });
});

使用 Postman 发送 JSON 数据:

请求体(JSON 格式):

{ "name": "Alice", "age": 25 }

返回结果:

{ "received": { "name": "Alice", "age": 25 } }

4. 第三方中间件(如 cors, morgan

第三方中间件通常用于增强 Express 应用的功能,例如 cors 处理跨域请求,morgan 记录日志等。

示例:使用 cors 允许跨域请求

安装 cors

npm install cors

app.js 中使用:

const cors = require('cors');
app.use(cors());app.get('/api/data', (req, res) => {res.json({ message: 'CORS Enabled' });
});

5. 错误处理中间件(用于捕获错误)

错误处理中间件专门用于处理应用中的错误,必须包含 err 参数。

示例:全局错误处理中间件

文件名:middleware/errorHandler.js

// middleware/errorHandler.js
const errorHandler = (err, req, res, next) => {console.error(`Error: ${err.message}`);res.status(500).send('<h1>Internal Server Error</h1>');
};module.exports = errorHandler;

app.js 中使用:

const errorHandler = require('./middleware/errorHandler');app.get('/error', (req, res, next) => {next(new Error('Something went wrong!')); // 触发错误处理
});app.use(errorHandler);

访问 http://localhost:3000/error,页面显示:

Internal Server Error

终端输出:

Error: Something went wrong!

4. 总结

  1. 应用级中间件 - 作用于整个应用,如日志记录。

  2. 路由级中间件 - 仅在特定路由生效,如身份验证。

  3. Express 内置中间件 - 解析 JSON 请求、静态文件等。

  4. 第三方中间件 - 额外安装,如 cors 处理跨域请求。

  5. 错误处理中间件 - 捕获错误并返回友好的错误信息。

本教程提供了完整代码和运行示例,帮助开发者深入理解 Express 中间件的分类和使用,提高应用的可维护性和扩展性!

 

关键字:广州网络推广专员_互联网官网_石家庄网络营销网站推广_免费网站优化排名

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: