请描述 Express 框架在处理 HTTP 请求和响应时的内部执行流程,包括从请求进入到响应返回的各个关键环节。
考察说明
考查对 Express 中间件模型和请求生命周期理解的深度。
回答思路
- 【回答框架 1】Express 基于中间件模型,每个中间件函数接收 req、res、next,通过 next 控制流程。请求进入后,按注册顺序依次执行匹配的中间件。
- 【回答框架 2】流程大致为:接收请求,解析 URL 和查询参数,根据路由和中间件栈进行匹配。若匹配,则执行相应处理;否则可能返回 404。
- 【回答框架 3】在处理过程中,中间件可以修改 req 和 res 对象,可以通过 res.send、res.json 等方法发送响应,发送后响应结束。
- 【回答框架 4】错误处理中间件有四个参数,当调用 next(err) 时,会跳过普通中间件,直接执行错误处理中间件,最终返回错误响应。
- 【关键点 1】next() 是控制权转移的关键。
- 【关键点 2】中间件顺序影响执行结果。
- 【关键点 3】res.end 或 res.send 触发响应结束。
- 【关键点 4】next(err) 触发错误处理。
- 【易错点 1】未调用 next 或未发送响应会导致请求挂起。
- 【易错点 2】错误处理中间件必须放在最后。
- 【易错点 3】在异步操作中忘记调用 next 可能造成流程异常。