代码开发/Cookbook/Expressions
表达式常见问题#
以下是一些与 表达式(expressions) 相关的常见错误及其解决或排查方法。
第 0 项中的“JSON 输出”包含无效的 JSON#
当你使用 JSON 模式但未提供有效的 JSON 对象时,会出现此错误。根据 JSON 对象的具体问题,有时该错误会显示为:第 0 项中的“JSON 输出”不包含有效的 JSON 对象。
要解决此问题,请确保你提供的代码是有效的 JSON:
- 使用 JSON 验证工具 检查 JSON 格式。
- 确保你的 JSON 对象没有引用未定义的输入数据。如果传入的数据并非始终包含相同的字段,则可能发生此类情况。
无法获取表达式所需的数据#
当 n8n 无法检索表达式所引用的数据时,会出现此错误。通常是因为前一个节点尚未运行所致。
另一种类似错误可能显示为 引用的节点未执行(Referenced node is unexecuted)。在这种情况下,完整错误信息将以如下格式提示你具体哪个节点未执行:
An expression references the node '', but it hasn’t been executed yet. Either change the expression, or re-wire your workflow to make sure that node executes first. (某个表达式引用了节点 '',但它尚未被执行。请修改表达式,或重新连接工作流以确保该节点先执行。)
开始排查时,可测试到该命名节点为止的工作流是否正常。
对于使用 JavaScript 或其他自定义代码的节点,你可以通过以下方式检查前一个节点是否已执行,再使用其值:
1| ``` $("").isExecuted
---|---
例如,以下 JSON 引用了输入数据的参数。如果你在未将其连接到其他节点的情况下测试此步骤,就会出现此错误:1 2 3
| ```
{
"my_field_1":{{$input.params}}
}---|---
语法无效#
当你使用的表达式存在语法错误时,会出现此错误。
例如,以下 JSON 中的表达式包含一个末尾的句点,导致语法无效:
1
2
3
4| ``` { "my_field_1":"value", "my_field_2":{{$('If').item.json.}} }
---
|---
要解决此错误,请检查你的[表达式语法](https://docs.n8n.io/code/expressions/),确保其符合预期的格式。