AI通识课
如何在一个handler中将请求转交给handler处理?
Q: How to forward request to another handler from current handler ?
A: use app.request(...)
细节描述
虽然honojs的文档上说,app.request对于测试来说很有用(request is a useful method for testing.), 但是,我们同样可以在生产代码中使用。
有些时候,我们会需要某个共享的handler的处理逻辑,虽然可以通过提取共享代码的方式也能达到目的,但跟honojs推荐的最佳实践不太契合 [^controller]。
[^controller]:Don’t make “Controllers” when possible
所以,我们选择在HandlerA中将请求转交(forward)给HandlerB(也就是共享逻辑)去处理。
如果通过在HandlerA中使用HTTP fetch API来调用HandlerB(走路由route),那么,需要走公网,多一次来回(round trip),而且,cloudflare worker也不支持这么干。
最后,我们可以选择使用honojs的app.request完成请求的转发:
「架构师的修炼」大礼包
管理者入门与进阶课程