我们可以使用Cloudflare Worker的route pattern来定义和拦截到指定域名和路径的请求,然后进行处理。
比如,https://afoo.me是静态站,所有内容都是编译成静态HTML再发布的,所以,没有处理动态请求的能力。
假设我想要在https://afoo.me/api/
这个路径以及其子路径上添加各种动态功能,应该怎么做呢?
传统方式是在nginx或者caddyserver等服务上配置路有规则,但我们想要使用HonoJS开发一个Cloudflare Worker来做这个事情。
关键步骤分三步(跟把大象放冰箱分几步一个道理🤪):
创建基于HonoJS的Cloudflare Worker项目
使用npm create hono@latest {{project_name}}
创建即可,根据提示输入必要信息即可。
配置route pattern
在wrangler.toml中添加route pattern配置:
其中:
- pattern指定的是拦截路径的表达式,
pattern = "afoo.me/api/*"
表示,当前Worker部署之后,将拦截并处理所有到https://afoo.me/api/
这个路径以及其子路径上的请求。
- zone_name或者zone_id是你/我在Cloudflare上已有配置的主域名。
编写动态请求的处理逻辑
这里就是HonoJS发挥所长的地方了,比如,我们可以新增加一个二维码生成API:
因为是API服务,所以,所有响应(Response)我们都规范化为json结果,至于二维码的生成,我们使用的是uqr这个库,使用前需要安装依赖:npm install uqr
,类似的库很多,可以根据自己喜好选择,这里只供参考。
学习和了解更多关于技术、管理与人的精彩内容。
如果已经购买「福强私学」,可以直接点击这里开始访问。