跳到主要内容

脚本

Egern 允许用户通过编写 JavaScript 脚本来灵活地控制网络请求/响应的处理以及定时任务。通过这些脚本,用户可以根据需要对网络请求和响应进行定制化处理,或者设置定时任务来执行某些操作。

配置说明

scriptings 类型的配置包含三种类型的脚本:HTTP 请求脚本(http_request)、HTTP 响应脚本(http_response)和定时任务脚本(schedule)。每种类型的脚本都有一些共享的配置字段,也有一些特定的配置字段。

以下表格列出了所有的配置字段:

字段名类型是否必填描述适用的脚本类型
namestring脚本的名称。所有
matchstring(正则表达式)需要应用此脚本的 URL 正则表达式。http_request, http_response
script_urlstring脚本的 URL,可以是本地路径或远程链接。所有
update_intervalinteger当脚本是远程链接时,此参数设定了更新脚本的间隔时间,单位为秒。默认值为 86400(一天)。所有
timeoutinteger脚本执行的超时时间,单位为秒。默认值为 30。所有
max_sizeinteger设定消息体的最大尺寸,单位为字节。若消息体的尺寸超过此值,则不会调用脚本。http_request, http_response
debugboolean是否启用调试。如果启用,Egern 将打印更多的调试信息。所有
body_requiredboolean指定是否需要消息体。若设为 true,则只有当消息体存在时才会调用脚本。http_request, http_response
cronstring设定定时任务的执行时间,需使用 Cron 表达式来设置。schedule

配置示例

以下是一个 scriptings 类型的配置示例:

scriptings:
- http_request:
name: "Example Request Script"
match: "example\\.com"
script_url: "scripts/request.js"
update_interval: 86400
timeout: 30
max_size: 131072
debug: false
body_required: true
- http_response:
name: "Example Response Script"
match: "example\\.com"
script_url: "scripts/response.js"
update_interval: 86400
timeout: 30
max_size: 131072
debug: false
body_required: true
- schedule:
name: "Example Scheduled Task"
cron: "0 0 * * *"
script_url: "scripts/task.js"
update_interval: 86400
timeout: 30
debug: false

在此配置中,我们有三个脚本:一个用于处理所有匹配 example.com 的 HTTP 请求,一个用于处理所有匹配 example.com 的 HTTP 响应,以及一个每天凌晨执行的定时任务。每个脚本都有自己的 URL,Egern 将每天从这些 URL 更新脚本。