当前位置:首页>java>n8n里,你必须要会的“一行代码”奇巧淫技!

n8n里,你必须要会的“一行代码”奇巧淫技!

  • 2026-10-21 13:28:36
n8n里,你必须要会的“一行代码”奇巧淫技!
点上面,关注我超级字符
提起n8n,很多人第一时间想到的是低代码——拖拽节点、连线索就能搭自动化流程。但你可能没发现,n8n里藏着一把“效率手术刀”:Code节点里的“一行代码”。

它不用写完整的函数,不用处理复杂的逻辑,甚至不用记API,只需一行表达式,就能解决那些“让手动效率崩溃”的小麻烦。

先搞懂:“一行代码”不是什么,是什么?

n8n的Code节点本质是运行JavaScript表达式,而“一行代码”的核心逻辑是:用最少的语法,完成“输入→处理→输出”的闭环。

  • 不需要function定义函数,不需要return返回结果(表达式本身会自动返回);
  • 直接用$input获取上一个节点的数据,用点操作符调属性,用内置方法处理;

下面的例子,会让你瞬间明白它的“杀伤力”。


例1:一行代码拯救“混乱文件名”

你有没有遇到过这种崩溃场景:下载的资料文件名里全是_、- or 空格,或者夹杂着特殊符号(比如Report_2023-12_(最终版).pdf),手动一个个改?改100个文件能花掉半小时。

用n8n的“一行代码”,1秒解决这个问题:

场景设定

  • 上一个节点(比如“Read Binary Files”)读取了文件数据,输出里包含fileName字段(值为Report_2023-12_(最终版).pdf);
  • 目标:把fileName里的_、-、(、)等非常规字符全部替换成空格,统一文件名格式。

一行代码实现

$input.item.json.fileName.replace(/[_\-()\s]+/g, ' ').trim()

代码解释

  • $input.item.json.fileName:获取上一个节点的文件名;
  • .replace(/[_\-()\s]+/g, ' '):用正则表达式匹配所有_、-、(、)或连续空格(\s),全部替换成1个空格;
  • .trim():去掉开头和结尾的多余空格。

输出变成:Report 2023 12 最终版.pdf——干净、规范,批量处理1000个文件也只需1秒。


例2:一行代码生成“动态日记路径”

假设你用一个Markdown文件写日记,每天一个文件,存储路径是/Users/你/Documents/Diary/YYYY-MM-DD.md(比如2024-03-15.md)。 每天手动找文件很麻烦?用“一行代码”,自动生成昨天的日记路径,直接连到“Read File”节点就能读取。

一行代码实现

`/Users/你/Documents/Diary/${newDate(Date.now() - 86400000).toISOString().split('T')[0]}.md`

代码解释

  • `...`:模板字符串,用于拼接路径;
  • new Date(Date.now() - 86400000):获取当前时间戳减去1天(86400000毫秒=24小时),即昨天的日期对象;
  • .toISOString():把日期转为ISO格式(比如2024-03-15T00:00:00.000Z);
  • .split('T')[0]:用T分割字符串,取前半部分(2024-03-15);
  • 最终拼接成:/Users/你/Documents/Diary/2024-03-15.md。

每天运行这个节点,都会自动产出昨天的日记路径,连到读取节点直接获取内容——不用手动改日期,不用重复操作。


例3:一行代码合并“拆分的数据

有时候,上游节点(比如“Split in Batches”或“HTTP Request”)会把数据拆成数组,下游需要“合并成一个字符串”(比如拼接100个用户ID成id1,id2,id3)。 手动复制粘贴?用“一行代码”直接合并。

场景设定

上一个节点输出了userIdList数组(比如['123', '456', '789'])。

一行代码实现

$input.item.json.userIdList.join(',')

代码解释

  • .join(','):把数组的元素用逗号连接成一个字符串。

输出:'123,456,789'——直接用于下游的“SQL Query”或“API请求参数”。


例4:一行代码过滤“无效数据”

比如你从数据库查了1000条订单数据,需要筛选出“金额大于100且状态为已支付”的订单。 手动筛选慢到崩溃,用“一行代码”秒出结果。

场景设定

上一个节点输出了orderList数组,每一项包含amount(金额)和status(状态)。

一行代码实现

$input.item.json.orderList.filter(order => order.amount > 100 && order.status === 'paid')

代码解释

  • .filter(...):数组的过滤方法,保留满足条件的元素;
  • order => ...:箭头函数,判断每条订单是否满足“金额>100且状态=paid”。

输出一个新数组,只包含符合条件的订单——直接用于后续的“发送通知”或“生成报表”。


例5:一行代码生成“随机验证码”

你需要给用户生成6位随机验证码(比如用于注册或登录),不用写复杂的随机逻辑,“一行代码”搞定。

一行代码实现

Math.random().toString().slice(2, 8)

代码解释

  • Math.random():生成0-1之间的随机小数(比如0.123456789);
  • .toString():把小数转字符串("0.123456789");
  • .slice(2, 8):截取从第2位到第8位的字符(跳过开头的0.,取6位数字)。

输出:'123456'(随机,每次运行不同)。


为什么“一行代码”这么好用?

核心原因:n8n帮你“挡掉了”所有麻烦事——

  • 不需要写完整的脚本(比如不用定义变量、不用处理异常);
  • 不需要记复杂的API(比如$input直接获取数据,.replace/.join这些原生方法超常用);
  • 完美衔接节点间的数据流转(上游输出什么,就处理什么,无缝衔接)。

那些“手动做10分钟,用低代码节点拖10分钟”的小任务,“一行代码”10秒解决——这就是效率的“杠杆效应”。


总结一下

n8n的“一行代码”不是用来替代复杂的脚本,而是用极简的方式解决高频、重复、细微的问题。

从替换文件名到生成日记路径,从合并数组到筛选数据,这些“小事”积少成多,每天能帮你省下1小时。下次遇到这种“小麻烦”,先别急着手动:打开n8n的Code节点,写一行代码,让机器帮你“干脏活”。

如果不会写代码,也要会用AI提问,比如:“帮我用一行代码实现****的功能”。

毕竟,自动化的本质,就是把“重复的”交给机器,把“有意义的”留给自己。

下期继续分享,欢迎关注

分享几个我的小程序👇点击或长按识别体验👇

生日水印相机

超级字符

春节倒计时

 // / 往期精选// /

最新文章

随机文章