Skip to content

表达参考(Expression Reference)#

这些是一些常用表达。下面出现了一个更全面的列表。

🌐 These are some commonly used expressions. A more exhaustive list appears below.

| 类别 | 表达 | 描述 |

|---|---|---|

| 访问当前输入项数据 | $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) | 辅助函数接受两个参数,并测试第一个参数是否为空,然后返回第一个参数(如果不为空)或第二个参数(如果第一个为空)。当第一个参数是 undefinednull、空字符串 ''、或数组且 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) | 转换数组中的项目 |

浏览下表以根据它们作用的数据类型查找方法。点击方法名称以阅读其详细文档。

🌐 Browse the tables below to find methods by the data type on which they act. Click a method name to read detailed documentation for it.

数组(Array)#

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

split() 的相反操作。

另请参见 slice()append()

BinaryFile#

布尔值(Boolean)#

CustomData#

日期(Date)#

  • Date.toDateTime()

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

DateTime#

ExecData#

  • $exec.customData

    设置和获取自定义执行数据(例如,用于筛选执行)。你也可以使用“执行数据”节点来完成此操作。 更多信息

  • $exec.id

    当前工作流执行的 ID

  • $exec.mode

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

  • $exec.resumeFormUrl

    访问由 “等待”节点生成的表单的URL。

  • $exec.resumeUrl

    要调用的 webhook URL,以恢复在 ‘等待’节点处等待的工作流。

HTTP响应(HTTPResponse)#

  • $response.body

    上一次 HTTP 调用中响应对象的主体。仅在“HTTP 请求”节点中可用

  • $response.headers

    最后一次 HTTP 调用返回的头信息。仅在“HTTP 请求”节点中可用。

  • $response.statusCode

    上一次 HTTP 调用返回的 HTTP 状态码。仅在“HTTP 请求”节点中可用。

  • $response.statusMessage

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

项目(Item)#

NodeInputData#

NodeOutputData#

数字(Number)#

对象(Object)#

  • Object.compact()

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

  • Object.hasField(name)

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

  • Object.isEmpty()

    如果对象没有设置任何键(字段)或为 null,则返回 true

  • 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

    当前输入来源的节点名称。

如果有多个输入(例如在“合并”节点中),始终使用当前节点的第一个输入连接器。

🌐 Always uses the current node’s first input connector if there is more than one (e.g. in the ‘Merge’ node).

  • outputIndex

    当前输入来自的输出连接器的索引。当上一个节点有多个输出(例如 ‘If’ 或 ‘Switch’ 节点)时使用此索引。

如果有多个输入(例如在“合并”节点中),始终使用当前节点的第一个输入连接器。

🌐 Always uses the current node’s first input connector if there is more than one (e.g. in the ‘Merge’ node).

  • runIndex

    生成当前输入的前一个节点的运行。

如果有多个输入(例如在“合并”节点中),始终使用当前节点的第一个输入连接器。

🌐 Always uses the current node’s first input connector if there is more than one (e.g. in the ‘Merge’ node).

根(Root)#

使用工作流的时区(可以在工作流设置中更改)。

🌐 Uses the workflow’s time zone (which can be changed in the workflow settings).

  • $pageCount

    节点已获取的结果页面数量。仅在“HTTP 请求”节点中可用。

  • $parameter

    当前节点的配置设置。这些是你在节点的用户界面中填写的参数(例如其操作)。

  • $prevNode

    有关当前输入来源节点的信息。

在“合并”节点中,总是使用第一个输入连接器。

🌐 When in a ‘Merge’ node, always uses the first input connector.

  • $request

    在节点上次运行期间发送的请求对象。仅在“HTTP 请求”节点中可用。

  • $response

    最后一次 HTTP 调用返回的响应。仅在“HTTP 请求”节点中可用。

  • $runIndex

    当前节点执行的当前运行的索引。从0开始。

  • $secrets

    来自 外部秘密仓库的秘密,如果已配置。秘密值永远不会显示给用户。仅在凭证字段中可用。

  • $today

    表示当前日期开始时的午夜的日期时间。

使用实例的时区(除非在工作流设置中被覆盖)。

🌐 Uses the instance’s time zone (unless overridden in the workflow’s settings).

字符串(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)

    返回一个字符串,其中第一次出现的patternreplacement替换。

要替换所有出现的内容,请改用 replaceAll()

对数组使用 join() 的相反操作。

  • String.startsWith(searchString, start?)

    如果字符串以 searchString 开头,则返回 true。区分大小写。

  • String.substring(start, end?)

    在给定位置提取字符串的片段。有关更高级的提取,请参见 match()

  • String.toBoolean()

    将字符串转换为布尔值。0falseno 解析为 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#