本节包含使用 Code 节点可以完成任务的示例和配方。

相关资源#

获取上一个节点返回的项目数量#

要获取上一个节点返回的项目数量:

JavaScriptPython

if (Object.keys(items[0].json).length === 0) {
return [
	{
		json: {
			results: 0,
		}
	}
]
}
return [
	{
		json: {
			results: items.length,
		}
	}
];

输出结果将类似于以下内容。

[
	{
		"results": 8
	}
]

获取二进制数据缓冲区#

二进制数据缓冲区包含工作流处理的所有二进制文件数据。如果您需要对二进制数据执行操作,就需要访问该缓冲区,例如:

  • 操作数据:例如向 CSV 文件添加列标题
  • 在计算中使用数据:例如基于它计算哈希值
  • 复杂 HTTP 请求:例如将文件上传与其他数据格式发送结合

Python 中不可用

使用 Python 时不支持 getBinaryDataBuffer() 函数。

您可以使用 n8n 的 getBinaryDataBuffer() 函数访问缓冲区:

/* 
* itemIndex: number. 输入数据中项目的索引
* binaryPropertyName: string. 二进制属性的名称
* Read/Write File From Disk 节点中默认为 'data'
*/
let binaryDataBufferItem = await this.helpers.getBinaryDataBuffer(itemIndex, binaryPropertyName);

例如:

let binaryDataBufferItem = await this.helpers.getBinaryDataBuffer(0, 'data');
// 返回第一个输入项在二进制缓冲区中的数据

您应该始终使用 getBinaryDataBuffer() 函数,避免使用直接访问缓冲区的旧方法,例如通过 items[0].binary.data.data 这样的表达式来定位它。

输出到浏览器控制台

您可以在 Code 节点中使用 console.log() 或 print() 来辅助编写和调试代码。

如需了解如何打开浏览器控制台,请参考 Balsamiq 的指南

console.log (JavaScript)#

关于 console.log() 的技术信息,请参阅 MDN 开发者文档

例如,将以下代码复制到 Code 节点中,然后打开控制台并运行该节点:

let a = "apple";
console.log(a);

关于 print() 的技术信息,请参阅 Real Python 的指南

例如,将 Code 节点的 语言 设置为 Python,将以下代码复制到节点中,然后打开控制台并运行该节点:

a = "apple"
print(a)

处理 [object Object] 输出#

如果控制台打印显示 [object Object],请检查数据类型并根据需要进行转换。

检查数据类型的方法:

print(type(myData))
JsProxy#

如果 type() 输出 <class 'pyodide.ffi.JsProxy'>,您需要使用 to_py() 将 JsProxy 转换为原生 Python 对象。这种情况通常发生在处理 n8n 节点数据结构中的数据时,例如节点的输入和输出。例如,如果您想打印工作流中前一个节点的数据:

previousNodeData = _("<node-name>").all();
for item in previousNodeData:
	# item 的类型是 <class 'pyodide.ffi.JsProxy'>
	# 需要将其转换为 Dict
	itemDict = item.json.to_py()
	print(itemDict)

更多关于 JsProxy 类的信息,请参阅 Pyodide 文档中的 JsProxy

《DeepSeek高效数据分析:从数据清洗到行业案例》聚焦DeepSeek在数据分析领域的高效应用,是系统讲解其从数据处理到可视化全流程的实用指南。作者结合多年职场实战经验,不仅深入拆解DeepSeek数据分析的核心功能——涵盖数据采集、清洗、预处理、探索分析、建模(回归、聚类、时间序列等)及模型评估,更通过金融量化数据分析、电商平台数据分析等真实行业案例,搭配报告撰写技巧,提供独到见解与落地建议。助力职场人在激烈竞争中凭借先进技能突破瓶颈,实现职业进阶,开启发展新篇。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐