跳转到内容

Handlebars 助手参考

Restorm 中的每一个表达式都是一个 Handlebars 模板:URL、请求头、参数、 请求正文、表达式类型的环境变量、场景字段,以及 Transform template 动作的模板。

本页收录了 116 个命名助手22 个动态变量

在支持自动补全的字段中,按 Ctrl+Space 即可触发补全。

助手签名作用
eq{{eq a b}}a === b
ne{{ne a b}}a !== b
neq{{neq a b}}ne 的别名
lt{{lt a b}}a < b(按数值比较)
lte{{lte a b}}a <= b
gt{{gt a b}}a > b
gte{{gte a b}}a >= b
and{{#and a b}}…{{else}}…{{/and}}块助手:所有参数都为真
or{{#or a b}}…{{/or}}块助手:至少有一个参数为真
not{{not value}}取反
ifEquals{{#ifEquals a b}}…{{else}}…{{/ifEquals}}块助手,严格相等
is{{#is a b}}…{{/is}}块助手,按字符串比较是否相等
isnt{{#isnt a b}}…{{/isnt}}块助手,按字符串比较是否不等
default{{default value fallback}}value 已定义则取它,否则取 fallback
compare{{#compare a "op" b}}…{{/compare}}块助手;op== === != !== < <= > >=
{{default region "eu-west-1"}}
{{#compare quantite ">" 100}}gros{{else}}normal{{/compare}}
助手签名示例 → 结果
lowercase{{lowercase s}}Bonjourbonjour
uppercase{{uppercase s}}BonjourBONJOUR
capitalize{{capitalize s}}bonjour toutBonjour tout
capitalizeAll{{capitalizeAll s}}bonjour toutBonjour Tout
titleize{{titleize s}}capitalizeAll 相同
camelcase{{camelcase s}}mon-champmonChamp
pascalcase{{pascalcase s}}mon-champMonChamp
snakecase{{snakecase s}}monChampmon_champ
snakeCase{{snakeCase s}}snakecase 的别名
dashcase{{dashcase s}}monChampmon-champ
dotcase{{dotcase s}}monChampmon.champ
pathcase{{pathcase s}}monChampmon/champ
sentencecase{{sentencecase s}}BONJOUR TOUTBonjour tout
slugify{{slugify s}}Mon Beau Titre !mon-beau-titre
trim{{trim s}}移除两端的空白字符
trimLeft{{trimLeft s}}只移除开头的
trimRight{{trimRight s}}只移除结尾的
replace{{replace s search replacement}}替换全部匹配(字面量匹配,不是正则)
split{{split s separator}}拆分为数组;分隔符默认为 ,
truncate{{truncate s length suffix}}长度默认 50,后缀默认 ...
ellipsis{{ellipsis s length}}truncate,但后缀为
append{{append s suffix}}在末尾拼接
prepend{{prepend s prefix}}在开头拼接
reverse{{reverse value}}反转字符串数组
startsWith{{#startsWith s prefix}}…{{/startsWith}}块助手
endsWith{{#endsWith s suffix}}…{{/endsWith}}块助手
contains{{#contains sOrArray value}}…{{/contains}}块助手
match{{match s pattern}}返回所有匹配项,或 null
test{{#test s pattern}}…{{/test}}块助手,正则表达式测试
padStart{{padStart s length char}}在开头填充
padEnd{{padEnd s length char}}在结尾填充
repeat{{repeat s n}}重复
substring{{substring s start end}}截取
indexOf{{indexOf s search}}返回位置,或 -1
count{{count s substring}}出现次数
newLineToBr{{newLineToBr s}}\n<br>
stripTags{{stripTags s}}移除 <…> 标签
{{slugify nomProduit}}
{{padStart numeroCommande 8 "0"}}
{{truncate description 120}}
助手签名作用
add{{add a b}}求和
subtract{{subtract a b}}求差
multiply{{multiply a b}}求积
divide{{divide a b}}求商
modulo{{modulo a b}}求余数
abs{{abs a}}绝对值
ceil{{ceil a}}向上取整
floor{{floor a}}向下取整
round{{round a}}四舍五入
pow{{pow base exponent}}
sqrt{{sqrt a}}平方根
random{{random min max}}随机整数,包含上下界
sum{{sum array}}数组各值之和
avg{{avg array}}平均值
min{{min a b c …}}最小值,可变参数
max{{max a b c …}}最大值,可变参数
toFixed{{toFixed number decimals}}返回保留 N 位小数的字符串
toInt{{toInt number}}整数(十进制),失败时回退为 0
toFloat{{toFloat number}}浮点数,失败时回退为 0
{"montantTTC": {{toFixed (multiply montantHT 1.2) 2}}}
助手签名作用
first{{first array n}}第一个元素,或前 n 个元素
last{{last array n}}最后一个元素,或后 n 个元素
length{{length value}}数组或字符串的长度,或对象的键数量
join{{join array separator}}分隔符默认为 ,
sort{{sort array}}返回排序后的副本
unique{{unique array}}去重
after{{after array n}}索引 n 之后的全部元素
before{{before array n}}索引 n 之前的全部元素
slice{{slice array start end}}切片
concat{{concat a b …}}拼接,并扁平化一层
flatten{{flatten array}}扁平化一层
pluck{{pluck array property}}从每个元素中提取同一个属性
itemAt{{itemAt array index}}索引处的元素;负索引从末尾开始计数
inArray{{#inArray array value}}…{{/inArray}}块助手
isArray{{isArray value}}布尔值
isEmpty{{#isEmpty value}}…{{/isEmpty}}块助手
some{{#some array prop value}}…{{/some}}块助手:至少有一个元素匹配
every{{#every array prop value}}…{{/every}}块助手:所有元素都匹配
{{join (pluck articles "reference") ","}}
助手签名作用
JSONstringify{{JSONstringify obj}}序列化,缩进 2 个空格
JSONparse{{JSONparse string}}解析;失败时返回 {}
get{{get obj "a.b.c"}}按点分路径读取
isObject{{isObject value}}布尔值(非 null、非数组)
typeOf{{typeOf value}}返回 nullarray,或 JavaScript 类型名
keys{{keys obj}}所有键
values{{values obj}}所有值
entries{{entries obj}}所有 [key, value]
hasOwn{{#hasOwn obj "key"}}…{{/hasOwn}}块助手
pick{{pick obj "k1" "k2"}}只保留这些键
omit{{omit obj "k1"}}移除这些键
merge{{merge o1 o2}}浅合并
{{get reponse "data.client.identifiant"}}
助手签名作用
encodeURI{{encodeURI s}}对 URL 的单个组成部分进行编码
decodeURI{{decodeURI s}}解码
urlParse{{urlParse url}}返回 { href, origin, protocol, host, hostname, port, pathname, search, hash },或 null
stripQuerystring{{stripQuerystring url}}移除查询字符串
stripProtocol{{stripProtocol url}}移除协议部分
{{baseUrl}}/recherche?q={{encodeURI termeRecherche}}
助手签名作用
year{{year}}当前年份
now{{now}}当前时刻,ISO 格式
timestamp{{timestamp}}当前时刻,单位为毫秒
formatDate{{formatDate date "YYYY-MM-DD"}}格式化日期

还要注意,{{timestamp}} 的单位是毫秒,而 {{$timestamp}} (下文的 Postman 兼容变量)的单位是

助手签名作用
coalesce{{coalesce a b c}}第一个非空的值
uuid{{uuid}}一个 v4 UUID
noop{{#noop}}…{{/noop}}不产生任何效果的块助手
raw{{{{raw}}}}…{{{{/raw}}}}不解析其中的内容
times{{#times n}}…{{/times}}重复渲染该块;可使用 @index@first@last
range{{range start end step}}数字数组,不含终点值

当您有意要发送双大括号时,raw 助手正是所需的工具 —— 例如测试一个自己也会解析双大括号的服务。

这些变量不接受参数,每次求值都会得到不同的结果

变量返回值
{{$guid}}一个 v4 UUID
{{$randomUUID}}一个 v4 UUID
{{$timestamp}}当前时刻,单位为
{{$isoTimestamp}}当前时刻,ISO 格式
{{$randomInt}}一个 0 到 1000 之间的整数
{{$randomAlphaNumeric}}8 个字母数字字符
{{$randomBoolean}}truefalse
{{$randomFirstName}}一个名
{{$randomLastName}}一个姓
{{$randomFullName}}一个全名
{{$randomUserName}}prenom.nom<0-99>
{{$randomEmail}}一个电子邮件地址
{{$randomColor}}一个颜色名
{{$randomWord}}一个单词
{{$randomWords}}三个单词
{{$randomCompanyName}}一个公司名
{{$randomCity}}一个城市名
{{$randomCountry}}一个国家名
{{$randomPhoneNumber}}一个电话号码
{{$randomIP}}一个 IP 地址
{{$randomIPV4}}一个 IPv4 地址
{{$randomPrice}}一个保留两位小数的价格
{
"correlationId": "{{$guid}}",
"client": { "nom": "{{$randomFullName}}", "email": "{{$randomEmail}}" },
"emisLe": "{{$isoTimestamp}}"
}

没有专门用于读取变量的助手:变量本身就在上下文里。写 {{baseUrl}} 即可, 不要写 {{env "baseUrl"}}

参阅变量与环境