跳到主要内容

表达式参考

以下是一些常用表达式。下方还列出了更全面的参考。

本节内容 ​

  • Array:处理数组的方法。
  • BinaryFile:二进制文件数据的属性。
  • Boolean:处理布尔值的方法。
  • CustomData:获取和设置自定义执行数据的方法。
  • Date:转换 JavaScript Date 的方法。
  • DateTime:处理 Luxon DateTime 的方法和属性。
  • ExecData:当前执行的属性。
  • HTTPResponse:最近一次 HTTP 调用的响应属性。
  • Item:当前数据项的属性。
  • NodeInputData:读取当前节点输入的方法。
  • NodeOutputData:读取节点输出的方法。
  • Number:处理数字的方法。
  • Object:处理对象的方法。
  • PrevNodeData:描述输入来源节点的属性。
  • Root:顶层变量和辅助函数,例如 $json 和 $now。
  • String:处理字符串的方法。
  • WorkflowData:当前工作流的属性。
类别表达式说明
访问当前输入数据项的数据$json当前数据项的 JSON 数据
$json.fieldName当前数据项的字段
$binary当前数据项的二进制数据
访问前面节点的数据$("NodeName").first()节点中的第一个数据项
$("NodeName").item节点中关联的数据项。更多信息请参阅数据项关联。
$("NodeName").all()节点中的所有数据项
$("NodeName").last()节点中的最后一个数据项
日期与时间$now当前日期和时间
$today今天的日期
$now.toFormat("yyyy-MM-dd")将当前日期格式化为字符串
条件判断$if(condition, "true", "false")根据条件为真或假返回相应值的辅助函数
condition ? true : false三元运算符:条件为真时返回一个值,为假时返回另一个值
$ifEmpty(value, defaultValue)此辅助函数接收两个参数,检查第一个参数是否为空;不为空时返回第一个参数,为空时返回第二个参数。以下情况视为空:undefined、null、空字符串 ''、调用 value.length 返回 false 的数组,或调用 Object.keys(value).length 返回 false 的对象。
字符串方法text.toUpperCase()转换为大写
text.toLowerCase()转换为小写
text.includes("foo")检查文本是否包含搜索内容
text.extractEmail()从文本中提取电子邮件地址
数组方法array.length获取数组长度
array.join(", ")使用逗号作为分隔符连接数组元素
array.filter(x => x <= 20)根据过滤条件筛选数组元素
array.map(x => x.id)转换数组元素

下方表格按操作对象的数据类型列出了方法。点击方法名称,可查看详细文档。

Array(数组) ​

如果需要所有匹配的元素,请使用 filter()。

与 split() 的作用相反。

另请参阅 slice() 和 append()。

BinaryFile(二进制文件) ​

Boolean(布尔值) ​

  • Boolean.isEmpty()

    返回 true 的情况是布尔值为 false、null 或 undefined;返回 false 的情况是布尔值为 true。

  • Boolean.isNotEmpty()

    返回 true 的情况是布尔值为 true;返回 false 的情况是布尔值为 false、null 或 undefined。结果与 isEmpty() 相反。

  • Boolean.toNumber()

    将 true 转换为 1,将 false 转换为 0。

  • Boolean.toString()

    将 true 转换为字符串 ‘true’,将 false 转换为字符串 ‘false’。

CustomData(自定义数据) ​

Date(日期) ​

  • Date.toDateTime()

    将 JavaScript Date 转换为 Luxon DateTime。DateTime 包含相同的信息,但更易于操作。

DateTime(日期时间) ​

  • DateTime.day

    一个月中的第几天,取值为 1–31。

  • DateTime.diffTo(otherDateTime, unit)

    以指定单位返回两个 DateTime 之间的差值。

  • DateTime.diffToNow(unit)

    以指定单位返回当前时刻与该 DateTime 之间的差值。如果需要文本形式,请使用 toRelative()。

  • DateTime.endOf(unit, opts)

    将 DateTime 向上调整到指定单位的结束时刻,例如月末。

  • DateTime.equals(other)

    返回 true 表示两个 DateTime 代表完全相同的时刻,且时区相同。如需较宽松的比较,请使用 hasSame()。

  • DateTime.extract(unit?)

    以数字形式提取日期或时间的某一部分,例如月份。如需提取文本名称,请参阅 format()。

  • DateTime.format(fmt)

    使用指定格式将 DateTime 转换为字符串。参阅格式化指南。对于常见格式,使用 toLocaleString() 可能更方便。

  • DateTime.hasSame(otherDateTime, unit)

    返回 true 表示两个 DateTime 在指定单位及更大单位上相同。忽略时区,仅比较本地时间,因此必要时请先使用 toUTC()。

  • DateTime.hour

    一天中的小时数,取值为 0–23。

  • DateTime.isBetween(date1, date2)

    返回 true 表示 DateTime 位于指定的两个时刻之间。

  • DateTime.isEmpty()

    对所有 DateTime 返回 false。返回 true 的情况是值为 null 或 undefined。

  • DateTime.isInDST

    DateTime 是否处于夏令时。

  • DateTime.isNotEmpty()

    对所有 DateTime 返回 true。返回 false 的情况是值为 null 或 undefined。

  • DateTime.locale

    DateTime 的区域设置,例如 ‘en-GB’。格式化 DateTime 时会使用该区域设置。

  • DateTime.millisecond

    一秒中的毫秒数,取值为 0–999。

  • DateTime.minus(n, unit?)

    从 DateTime 中减去指定时长。

  • DateTime.minute

    一小时中的分钟数,取值为 0–59。

  • DateTime.month

    月份,取值为 1–12。

  • DateTime.monthLong

    完整的月份名称,例如 ‘October’。未指定区域设置时,默认使用系统区域设置。

  • DateTime.monthShort

    缩写的月份名称,例如 ‘Oct’。未指定区域设置时,默认使用系统区域设置。

  • DateTime.plus(n, unit?)

    为 DateTime 加上指定时长。

  • DateTime.quarter

    一年中的季度,取值为 1–4。

  • DateTime.second

    一分钟中的秒数,取值为 0–59。

  • DateTime.set(values)

    为 DateTime 的指定单位赋予新值。如需将 DateTime 调整到单位起点或终点,另请参阅 startOf() 和 endOf()。

  • DateTime.setLocale(locale)

    设置区域,决定 DateTime 使用的语言和格式。生成 DateTime 的文本表示时很有用,例如使用 format() 或 toLocaleString() 时。

  • DateTime.setZone(zone, opts)

    将 DateTime 转换为指定时区。除非通过选项另行指定,DateTime 仍表示同一时刻。另请参阅 toLocal() 和 toUTC()。

  • DateTime.startOf(unit, opts)

    将 DateTime 向下调整到指定单位的起始时刻,例如月初。

  • DateTime.toISO(opts)

    返回符合 ISO 8601 标准的 DateTime 字符串表示。

  • DateTime.toLocal()

    将 DateTime 转换为工作流的本地时区。除非通过参数另行指定,DateTime 仍表示同一时刻。可以在工作流设置中设置时区。

  • DateTime.toLocaleString(formatOpts)

    返回 DateTime 的本地化字符串,即使用对应区域的语言和格式。未指定区域时,默认使用系统区域设置。

  • DateTime.toMillis()

    返回以毫秒为单位的 Unix 时间戳,即自 1970 年 1 月 1 日起经过的毫秒数。

  • DateTime.toRelative(options)

    返回相对于当前时刻的时间文本,例如 ‘in two days’(两天后)。默认向下取整。

  • DateTime.toSeconds()

    返回以秒为单位的 Unix 时间戳,即自 1970 年 1 月 1 日起经过的秒数。

  • DateTime.toString()

    返回 DateTime 的字符串表示,与 toISO() 类似。更多格式化选项请参阅 format() 或 toLocaleString()。

  • DateTime.toUTC(offset, opts)

    将 DateTime 转换为 UTC 时区。除非通过参数另行指定,DateTime 仍表示同一时刻。转换到其他时区请使用 setZone()。

  • DateTime.weekday

    星期几。1 表示星期一,7 表示星期日。

  • DateTime.weekdayLong

    完整的星期名称,例如 ‘Wednesday’。未指定区域设置时,默认使用系统区域设置。

  • DateTime.weekdayShort

    缩写的星期名称,例如 ‘Wed’。未指定区域设置时,默认使用系统区域设置。

  • DateTime.weekNumber

    一年中的周数,大致取值为 1–52。

  • DateTime.year

    年份。

  • DateTime.zone

    与 DateTime 关联的时区。

ExecData(执行数据) ​

  • $exec.customData

    设置和获取自定义执行数据,例如用于筛选执行记录。也可以通过 Execution Data 节点完成这些操作。更多信息

  • $exec.id

    当前工作流执行的 ID。

  • $exec.mode

    可能为以下三个值之一:test(通过点击 n8n 中的按钮触发执行)、production(自动触发执行)。运行工作流测试时,使用 evaluation。

  • $exec.resumeFormUrl

    访问 Wait 节点所生成表单的 URL。

  • $exec.resumeUrl

    用于恢复在 Wait 节点处等待的工作流的 Webhook URL。

HTTPResponse(HTTP 响应) ​

  • $response.body

    最近一次 HTTP 调用的响应对象的正文。仅在 HTTP Request 节点中可用。

  • $response.headers

    最近一次 HTTP 调用返回的响应头。仅在 HTTP Request 节点中可用。

  • $response.statusCode

    最近一次 HTTP 调用返回的 HTTP 状态码。仅在 HTTP Request 节点中可用。

  • $response.statusMessage

    关于请求状态的可选消息。仅在 HTTP Request 节点中可用。

Item(数据项) ​

NodeInputData(节点输入数据) ​

NodeOutputData(节点输出数据) ​

Number(数字) ​

  • Number.abs()

    返回数字的绝对值,即去掉负号。

  • Number.ceil()

    将数字向上取整。

  • Number.floor()

    将数字向下取整。

  • Number.format(locale?, options?)

    返回表示该数字的格式化字符串,适合按特定语言或货币格式显示数字。与 Intl.NumberFormat() 相同。

  • Number.isEmpty()

    返回 true 的情况是数字为 0、NaN、null 或 undefined。其他数字均返回 false。

  • Number.isEven()

    返回 true 表示该数字是偶数。如果数字不是整数,则抛出错误。

  • Number.isInteger()

    返回 true 表示该数字是整数。

  • Number.isNotEmpty()

    返回 true 的数字包括除 0 和 NaN 之外的所有数字。返回 false 的情况是数字为 0、NaN、null 或 undefined。结果与 isEmpty() 相反。

  • Number.isOdd()

    返回 true 表示该数字是奇数。如果数字不是整数,则抛出错误。

  • Number.round(decimalPlaces?)

    返回四舍五入到最接近的整数或指定小数位数后的数字。

  • Number.toBoolean()

    将数字转换为布尔值。0 转换为 false,其他值均转换为 true。

  • Number.toDateTime(format?)

    将数字时间戳转换为 DateTime。如果时间戳的单位不是毫秒,必须指定其格式。使用 n8n 的时区或工作流设置中的时区。

  • Number.toLocaleString(locales?, options?)

    返回表示该数字的本地化字符串,即使用对应区域的语言和格式。未指定区域时,默认使用系统区域设置。

  • Number.toString(radix?)

    将数字转换为简单的文本表示形式。更多格式化选项请参阅 toLocaleString()。

Object(对象) ​

  • Object.compact()

    删除所有值为空的字段,即值为 null 或 "" 的字段。

  • Object.hasField(name)

    返回 true 表示存在名为 name 的字段。仅检查顶层键,比较时区分大小写。

  • Object.isEmpty()

    返回 true 的情况是对象没有设置任何键(字段),或对象为 null 或 undefined。

  • Object.isNotEmpty()

    返回 true 表示对象至少设置了一个键(字段)。

  • Object.keepFieldsContaining(value)

    删除值与指定 value 完全不匹配的字段;至少部分匹配的字段予以保留。比较时区分大小写,值不是字符串的字段始终会被删除。

  • Object.keys()

    返回包含对象所有字段名(键)的数组。与 JavaScript 的 Object.keys(obj) 相同。

  • Object.merge(otherObject)

    将两个对象合并为一个。如果两个对象中存在相同的键(字段名),则使用第一个对象(基础对象)中的值。

  • Object.removeField(key)

    从对象中删除一个字段。与 JavaScript 的 delete 相同。

  • Object.removeFieldsContaining(value)

    删除值与指定 value 至少部分匹配的键(字段)。比较时区分大小写,值不是字符串的字段始终会被保留。

  • Object.toJsonString()

    将对象转换为 JSON 字符串。与 JavaScript 的 JSON.stringify() 类似。

  • Object.urlEncode()

    根据对象的键和值生成 URL 参数字符串,仅支持顶层键。

  • Object.values()

    返回包含对象所有字段值的数组。与 JavaScript 的 Object.values(obj) 相同。

PrevNodeData(前一节点数据) ​

  • name

    提供当前输入的节点名称。

如果当前节点有多个输入连接点(例如 Merge 节点),始终使用第一个输入连接点。

  • outputIndex

    提供当前输入的输出连接点索引。前一个节点有多个输出时(例如 If 或 Switch 节点),可以使用此值。

如果当前节点有多个输入连接点(例如 Merge 节点),始终使用第一个输入连接点。

  • runIndex

    前一个节点生成当前输入时的运行次数索引。

如果当前节点有多个输入连接点(例如 Merge 节点),始终使用第一个输入连接点。

Root(全局变量与函数) ​

使用工作流的时区,可以在工作流设置中修改。

  • $pageCount

    节点已获取的结果页数,仅在 HTTP Request 节点中可用。

  • $parameter

    当前节点的配置,即在节点界面中填写的参数,例如要执行的操作。

  • $prevNode

    关于提供当前输入的节点的信息。

在 Merge 节点中,始终使用第一个输入连接点。

  • $request

    节点最近一次运行时发送的请求对象,仅在 HTTP Request 节点中可用。

  • $response

    最近一次 HTTP 调用返回的响应,仅在 HTTP Request 节点中可用。

  • $runIndex

    当前节点本次执行中当前运行的索引,从 0 开始。

  • $secrets

    如果已配置外部密钥库,则提供其中的密钥。密钥值不会向用户显示,仅在凭据字段中可用。

  • $today

    表示当天起始午夜时刻的 DateTime。

使用实例的时区,除非工作流设置覆盖了该时区。

String(字符串) ​

如果字符串还包含其他内容,可以先尝试使用 extractEmail() 或 extractUrl()。

  • String.extractEmail()

    提取字符串中找到的第一个电子邮件地址。未找到时返回 undefined。

  • String.extractUrl()

    提取字符串中找到的第一个 URL。未找到时返回 undefined。仅识别完整的 URL,例如以 http 开头的 URL。

  • String.extractUrlPath()

    返回 URL 中域名之后的部分,未找到 URL 时返回 undefined。

如果字符串还包含其他内容,可以先尝试使用 extractUrl()。

如果只需检查文本是否存在,可以考虑改用 includes()。

  • String.parseJson()

    返回字符串所表示的 JavaScript 对象或值。如果字符串不是有效的 JSON,则返回 undefined。不支持使用单引号的 JSON。

  • String.quote(mark?)

    为字符串加上引号,并转义字符串中已有的引号。适用于构造 JSON、SQL 等内容。

  • String.removeMarkdown()

    删除字符串中的所有 Markdown 格式,同时删除 HTML 标签。

  • String.removeTags()

    删除字符串中的标签,例如 HTML 或 XML 标签。

  • String.replace(pattern, replacement)

    返回一个字符串,其中首次出现的 pattern 被替换为 replacement。

如需替换所有出现的位置,请使用 replaceAll()。

与在数组上使用 join() 的作用相反。

  • String.startsWith(searchString, start?)

    返回 true 表示字符串以 searchString 开头,区分大小写。

  • String.substring(start, end?)

    从指定位置提取字符串片段。更复杂的提取方式请参阅 match()。

  • String.toBoolean()

    将字符串转换为布尔值。0、false 和 no 转换为 false,其他值均转换为 true,不区分大小写。

  • String.toDateTime()

    将字符串转换为 DateTime,便于进一步转换。支持的字符串格式包括 ISO 8601、HTTP、RFC2822、SQL 和以毫秒为单位的 Unix 时间戳。

如需解析其他格式,请使用 DateTime.fromFormat()。

  • String.toJsonString()

    处理字符串,使其可插入 JSON 对象:转义引号和特殊字符,例如换行符,并为字符串加上引号。

与 JavaScript 的 JSON.stringify() 相同。

  • String.toLowerCase()

    将字符串中的所有字母转换为小写。

  • String.toNumber()

    将表示数字的字符串转换为数字。如果字符串不是以有效数字开头,则抛出错误。

  • String.toSentenceCase()

    将字符串转换为句首大写形式,每个句子的首字母大写,其余字母小写。

  • String.toSnakeCase()

    将字符串转换为蛇形命名形式:空格和连字符替换为 _,删除符号,所有字母转换为小写。

  • String.toTitleCase()

    将字符串转换为标题大小写形式。每个单词的首字母大写,其余字母保持原样。较短的介词和连词不大写,例如 ‘a’、‘the’。

  • String.toUpperCase()

    将字符串中的所有字母转换为大写。

  • String.trim()

    删除字符串两端的空白字符,包括换行符、制表符、空格等。

  • String.urlDecode(allChars?)

    对 URL 编码的字符串进行解码,将 %XX 形式的字符编码替换为对应字符。

  • String.urlEncode(allChars?)

    对字符串进行编码,使其可用于 URL。空格和特殊字符替换为 %XX 形式的编码。

WorkflowData(工作流数据) ​

相关资源 ​

本文为社区中文翻译。查看对应英文原文