文档
一个 项目

vars

设置一个或多个变量为特定值,以便在后续请求处理链中使用。

访问变量的主要方式是使用占位符,格式为 {vars.variable_name},或使用 varsvars_regexp 请求匹配器。

你可以在 templates 指令中通过 placeholder 函数使用变量,例如:{{placeholder "http.vars.variable_name"}}

特殊情况下,可以覆盖名为 http.auth.user.id 的变量(存储在 replacer 中),以更新访问日志中的 user_id 字段。

语法

vars [<matcher>] [<name> <value>] {
    <name> <value>
    ...
}
  • <name> 要设置的变量名。

  • <value> 变量的值。

    如果可能,值会被类型转换;truefalse 会被转换为布尔类型,数字值会被转换为整数或浮点数。若要避免此转换并保持为字符串,可以用引号包裹。

示例

设置单个变量,值根据请求路径有条件变化,然后用该值响应:

example.com {
	vars /foo* isFoo "yep"
	vars isFoo "nope"

	respond {vars.isFoo}
}

设置多个变量,每个变量会被转换为合适的标量类型:

vars {
	# 布尔值
	abc true

	# 整数
	def 1

	# 浮点数
	ghi 2.3

	# 字符串
	jkl "example"
}