前端需要去了解的nodejs知识(express中间件)

简介: 在上一节中我们简单了解了express的路由,本文主要分析下express的另一个核心功能中间件的使用。路由是express整个框架能有如今广泛使用和发展的基础,那中间件就是其发展的养分。正是express丰富的中间件才节省了我们大量的开发时间。

网络异常,图片无法展示
|


在上一节中我们简单了解了express的路由,本文主要分析下express的另一个核心功能中间件的使用。路由是express整个框架能有如今广泛使用和发展的基础,那中间件就是其发展的养分。正是express丰富的中间件才节省了我们大量的开发时间。

中间件的定义


对于express来说,中间件其实就是一个规定了入参和出参的JavaScript函数,这个函数可以处理请求request和返回response相关的参数,其功能如下:

  • 执行任何代码。
  • 处理请求和返回对象并返回新的。
  • 结束本次请求。
  • 调用next函数执行下一个中间件。 定义中间件的示例如下:
//处理请求对象的:请求参数重插入个参数
const myMiddleware = function (req, res, next) {
  console.log('this is a middleware')
  req.requestTime = Date.now()
  next()
}

可配置的中间件,目前这种中间件在我们实际应用中比较多,比如经典expressJWT bodyParser中间件

module.exports = function (options) {
  return function (req, res, next) {
    // 根据传入的参数执行一些操作
    next()
  }
}

中间件的使用


  • 中间件注册:使用app.use或app.METHOD进行中间件注册。
  • 中间按使用类型可以分为以下几种:
  • 常规型:应用层中间件、路由层中间件、内置中间件、第三方中间件
  • 错误处理:错误处理中间件

网络异常,图片无法展示
|

  • 中间件整个执行流程图大概如上图:注册中间件和路由=》生成路由与中间件的映射=》客户端请求=》执行应用层中间件=》匹配路由=》执行异常中间件或路由映射的中间件,内置中间件和第三方中间件的执行流程根据其所定义的位置来执行。
  • 应用层中间件:使用 app.use()app.METHOD() 函数将应用层中间件绑定到应用程序对象的实例,一般写在应用最前面
var app = express();
app.use(function (req, res, next) {
  ******
  next();
});
  • 路由器层中间件:路由层中间件和应用层类似,主要差别是路由中间件绑定的是express.Router()上。在复杂的项目中拆分路由时候常用
let express = require('express');
let router = express.Router();
router.post('/download/**/', function (req, res, next) {
    ******
});
  • 内置中间件:自 V4.x 起,Express 不再依赖于 Connect。除 express.static 外,先前 Express 随附的所有中间件函数现在以单独模块的形式提供。请查看中间件函数的列表
const express = require('express');
const app = express();
app.use(express.urlencoded({extended: false}));
  • 第三方中间件:这一种中间件是我们使用最多的中间件,用于增加和扩展路由器的功能。使用一般是npm install安装=》引入=》使用。如下:morgan是一个开源的express日志处理中间件
const morgan = require('morgan')
app.use(morgan('short'));
  • 错误处理中间件:此种中间件和其他几种的最大不同是函数中采用了四个变量,第一个变量是错误信息的返回。在项目的最后我们经常会加上如下缺省错误处理,用于捕获程序异常:
app.use((err, req, res, next) => {
  if (res.headersSent) {
    return next(err);
  }
  res.status(500);
  res.render('error', { error: err });
});

总结


express中间件的思想不紧紧方便了开发,这种设计也是我们系统高内聚低耦合多思想实践之一。在我们日常的业务开发中也可以参照这种设计来实现需求。

相关文章
|
12月前
|
前端开发 JavaScript NoSQL
使用 Node.js、Express 和 React 构建强大的 API
本文详细介绍如何使用 Node.js、Express 和 React 构建强大且动态的 API。从开发环境搭建到集成 React 前端,再到利用 APIPost 高效测试 API,适合各水平开发者。内容涵盖 Node.js 运行时、Express 框架与 React 库的基础知识及协同工作方式,还涉及数据库连接和前后端数据交互。通过实际代码示例,助你快速上手并优化应用性能。
|
资源调度 JavaScript 前端开发
前端开发必备!Node.js 18.x LTS保姆级安装教程(附国内镜像源配置)
本文详细介绍了Node.js的安装与配置流程,涵盖环境准备、版本选择(推荐LTS版v18.x)、安装步骤(路径设置、组件选择)、环境验证(命令测试、镜像加速)及常见问题解决方法。同时推荐开发工具链,如VS Code、Yarn等,并提供常用全局包安装指南,帮助开发者快速搭建高效稳定的JavaScript开发环境。内容基于官方正版软件,确保合规性与安全性。
12671 23
|
JavaScript 中间件 关系型数据库
构建高效的后端服务:Node.js 与 Express 的实践指南
在后端开发领域,Node.js 与 Express 的组合因其轻量级和高效性而广受欢迎。本文将深入探讨如何利用这一组合构建高性能的后端服务。我们将从 Node.js 的事件驱动和非阻塞 I/O 模型出发,解释其如何优化网络请求处理。接着,通过 Express 框架的简洁 API,展示如何快速搭建 RESTful API。文章还将涉及中间件的使用,以及如何结合 MySQL 数据库进行数据操作。最后,我们将讨论性能优化技巧,包括异步编程模式和缓存策略,以确保服务的稳定性和扩展性。
|
Web App开发 JSON JavaScript
Node.js 中的中间件机制与 Express 应用
Node.js 中的中间件机制与 Express 应用
|
缓存 负载均衡 JavaScript
构建高效后端服务:Node.js与Express框架实践
在数字化时代的浪潮中,后端服务的重要性不言而喻。本文将通过深入浅出的方式介绍如何利用Node.js及其强大的Express框架来搭建一个高效的后端服务。我们将从零开始,逐步深入,不仅涉及基础的代码编写,更会探讨如何优化性能和处理高并发场景。无论你是后端新手还是希望提高现有技能的开发者,这篇文章都将为你提供宝贵的知识和启示。
|
JavaScript
使用node.js搭建一个express后端服务器
Express 是 Node.js 的一个库,用于搭建后端服务器。本文将指导你从零开始构建一个简易的 Express 服务器,包括项目初始化、代码编写、服务启动与项目结构优化。通过创建 handler 和 router 文件夹分离路由和处理逻辑,使项目更清晰易维护。最后,通过 Postman 测试确保服务正常运行。
1015 1
|
JavaScript 安全 中间件
深入浅出Node.js中间件机制
【10月更文挑战第36天】在探索Node.js的奥秘之旅中,中间件的概念如同魔法一般,它让复杂的请求处理变得优雅而高效。本文将带你领略这一机制的魅力,从概念到实践,一步步揭示如何利用中间件简化和增强你的应用。
|
Web App开发 JavaScript 前端开发
探索后端开发:Node.js与Express的完美结合
【10月更文挑战第33天】本文将带领读者深入了解Node.js和Express的强强联手,通过实际案例揭示它们如何简化后端开发流程,提升应用性能。我们将一起探索这两个技术的核心概念、优势以及它们如何共同作用于现代Web开发中。准备好,让我们一起开启这场技术之旅!
339 0
|
Web App开发 JavaScript 前端开发
构建高效后端服务:Node.js与Express框架的实践
【10月更文挑战第33天】在数字化时代的浪潮中,后端服务的效率和可靠性成为企业竞争的关键。本文将深入探讨如何利用Node.js和Express框架构建高效且易于维护的后端服务。通过实践案例和代码示例,我们将揭示这一组合如何简化开发流程、优化性能,并提升用户体验。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的见解和实用技巧。
|
Web App开发 JavaScript 中间件
构建高效后端服务:Node.js与Express框架的融合之道
【10月更文挑战第31天】在追求快速、灵活和高效的后端开发领域,Node.js与Express框架的结合如同咖啡遇见了奶油——完美融合。本文将带你探索这一组合如何让后端服务搭建变得既轻松又充满乐趣,同时确保你的应用能够以光速运行。
374 0

热门文章

最新文章