前端/移动开发面试题更新 2026-08-05

在 Express 框架中,请列举中间件的分类方式,并说明每种类型的基本功能和典型使用场景。

前端/移动开发技术原理Express

考察说明

考查对 Express 中间件体系结构的理解,包括分类、作用及典型用法。

回答思路

  1. 【回答框架 1】Express 中间件本质上是在请求和响应循环中执行的函数,可以访问请求对象、响应对象以及下一个中间件函数。它按功能可分为应用级中间件、路由级中间件、错误处理中间件、内置中间件和第三方中间件。
  2. 【回答框架 2】应用级中间件通过 app.use() 或 app.METHOD() 绑定到应用实例,所有请求或匹配特定路径的请求都会经过它,常用于日志记录、请求解析、身份验证等全局处理。
  3. 【回答框架 3】路由级中间件绑定在 Router 实例上,通过 router.use() 或 router.METHOD() 使用,它作用于特定路由模块,实现局部过滤。错误处理中间件有四个参数(err, req, res, next),必须放在所有中间件之后,用来捕获并处理同步或异步错误,避免应用崩溃。
  4. 【回答框架 4】内置中间件如 express.static、express.json、express.urlencoded 等,它们随 Express 附带,分别用于静态文件服务、解析 JSON 请求体和解析 URL 编码请求体;第三方中间件如 cors、morgan、body-parser 等通过 npm 安装,提供跨域、日志、请求体解析等扩展功能。
  5. 【回答框架 5】中间件按执行时机还可划分为预处理器和后置处理器,但核心分类仍以应用级、路由级、错误处理、内置和第三方为主,使用时需注意中间件的加载顺序与路径匹配规则,因为顺序影响执行链。
  6. 【关键点 1】应用级中间件绑定在 app 实例,路由级中间件绑定在 Router 实例。
  7. 【关键点 2】错误处理中间件必须有四个参数(err, req, res, next),且应置于末尾。
  8. 【关键点 3】内置中间件包括 express.static、express.json、express.urlencoded 等。
  9. 【关键点 4】中间件执行顺序与加载顺序一致,路径匹配影响是否执行。
  10. 【关键点 5】第三方中间件通过 npm 扩展功能,如 cors、morgan。
  11. 【易错点 1】错误处理中间件若缺少 next 参数,则不会被视为错误处理中间件。
  12. 【易错点 2】忘记调用 next() 会导致请求挂起,必须显式传递控制权。
  13. 【易错点 3】中间件顺序放错可能导致功能失效,如日志中间件在路由之后将无法记录该路由的请求。