← 中文资源

简体中文版本

洋葱模型中间件管道

二十行实现 Express 风格的中间件组合器:每层可在 next 前后各执行一段,不调 next 即短路。

阅读英文原文

目标

实现洋葱模型的 compose:中间件按序进入、逆序退出,省略 next 直接短路且不报错,抛错则向上传播并停止后续层。

要点

demo 打印 enter-a,enter-b,core,exit-b,exit-a 的完整顺序与 coreRan=true;测试覆盖错误传播与短路两种非快乐路径。

提示

没有内建错误中间件约定——reject 一路传给调用方,需在那里捕获。

验证

node –test 三个用例;运行 demo 观察洋葱顺序输出。 复现命令:

node --test pipeline.test.mjs
node pipeline.mjs

预期输出要点:The demo prints the execution order enter-a, enter-b, core, exit-b, exit-a followed by the final context field set by the core.

实测证据:Node 22.23.2: node –test -> 3 passed; demo printed enter-a,enter-b,core,exit-b,exit-a followed by coreRan=true.