表达式常见问题#
以下是关于表达式的常见错误与问题及其排查解决方案。
第0项中的“JSON输出”包含无效JSON#
当启用JSON模式但未提供有效JSON对象时会出现此错误。根据JSON对象的具体问题,错误有时会显示为第0项中的“JSON输出”未包含有效JSON对象。
解决方案是确保提供的代码为有效JSON:
- 使用JSON验证工具检查JSON格式
- 确认JSON对象未引用未定义的输入数据(当传入数据字段不固定时可能发生)
无法获取表达式数据#
当n8n无法获取表达式引用的数据时会出现此错误,通常发生在前置节点尚未运行的情况下。
此错误的另一种表现形式为引用的节点未执行,完整错误信息会通过以下格式指明具体未执行的节点:
表达式引用了节点“<节点名称>”,但该节点尚未执行。请修改表达式或重新编排工作流以确保该节点优先执行。
开始排查时,请先测试工作流直至报错中指定的节点。
对于使用JavaScript或其他自定义代码的节点,可通过以下方式检查前置节点是否已执行:
$("<node-name>").isExecuted
例如,此 JSON 引用了输入数据的参数。若在未将此步骤连接到其他节点的情况下进行测试,将显示以下错误:
{ "my_field_1": {{ $input.params }} }
无效语法#
当使用存在语法错误的表达式时,会出现此错误。
例如,以下JSON表达式包含一个多余的后置句点,导致无效语法错误:
{ "my_field_1": "value", "my_field_2": {{ $('If').item.json. }} }
要解决此错误,请检查您的表达式语法以确保其符合预期格式。