Skip to content

Code 代码节点常见问题#

以下是 Code 代码节点 的一些常见错误和问题以及解决或故障排除的步骤。

Code doesn't return items properly 代码未正确返回项目#

当您的 Code 代码节点中的代码未以预期格式返回数据时,会出现此错误。

在 n8n 中,节点之间传递的所有数据都是对象数组。这些对象中的每一个都包装了另一个带有 json 键的对象:

1
2
3
4
5
6
7
[
  {
    "json": {
	  // your data goes here
	}
  }
]

要解决此错误,请检查以下内容:

  • 阅读 数据结构 以了解您在 Code 代码节点中接收的数据以及从节点输出数据的要求。
  • 了解数据项的工作原理以及如何通过 item linking 项目链接 连接来自先前节点的数据项。

A 'json' property isn't an object 'json' 属性不是对象#

当 Code 代码节点返回 json 键未指向对象的数据时,会出现此错误。

如果您将 json 设置为不同的数据结构(如数组),可能会发生这种情况:

1
2
3
4
5
6
7
[
  {
    "json": [
	  // Setting `json` to an array like this will produce an error
	]
  }
]

要解决此问题,请确保 json 键在您的返回数据中引用一个对象:

1
2
3
4
5
6
7
[
  {
    "json": {
	  // Setting `json` to an object as expected
	}
  }
]

Code doesn't return an object 代码未返回对象#

当您的 Code 代码节点未返回任何内容或返回意外结果时,可能会出现此错误。

要解决此问题,请确保您的 Code 代码节点返回 预期的数据结构

1
2
3
4
5
6
7
[
  {
    "json": {
	  // your data goes here
	}
  }
]

如果您提供的代码返回 'undefined' 而不是预期结果,也可能出现此错误。在这种情况下,请确保您在 Code 代码节点中引用的数据在每次执行中都存在,并且具有您代码期望的结构。

'import' and 'export' may only appear at the top level 'import' 和 'export' 只能出现在顶层#

如果您尝试在 Code 代码节点中使用 importexport,会出现此错误。n8n 的 JavaScript 沙箱不支持这些。相反,请使用 require 函数加载模块。

要解决此问题,请尝试将您的 import 语句更改为使用 require

1
2
3
4
// Original code:
// import express from "express";
// New code:
const express = require("express");

Cannot find module '<module>' 找不到模块 '<module>'#

如果您尝试在 Code 代码节点中使用 require 而 n8n 找不到模块,会出现此错误。

Only for self-hosted 仅适用于自托管

n8n 在 Cloud 云 版本中不支持导入模块。

如果您正在自托管 n8n,请按照以下步骤操作:

  • 将模块安装到您的 n8n 环境中。
    • 如果您使用 npm 运行 n8n,请在与 n8n 相同的环境中安装模块。
    • 如果您使用 Docker 运行 n8n,您需要使用包含您模块的 自定义镜像 扩展官方 n8n 镜像。
  • 设置 NODE_FUNCTION_ALLOW_BUILTINNODE_FUNCTION_ALLOW_EXTERNAL 环境变量 以允许导入模块。

Using global variables 使用全局变量#

有时您可能希望设置和检索与工作流相关的简单全局数据,跨执行和执行内。例如,在编译包含项目更新列表的报告时,您可能希望包含上一个报告的日期。

要直接设置、更新和检索工作流的数据,请在您的代码中使用 静态数据 函数。您可以全局管理数据或绑定到特定节点。

Use Remove Duplicates when possible 尽可能使用去重

如果您想要使用变量来避免多次处理相同的数据项,请考虑使用 Remove Duplicates 去重节点。Remove Duplicates 去重节点可以跨执行保存信息,以避免多次处理相同的项目。