n8n知识点总结

1.n8n流程表达式能读取系统环境变量吗

1
2
3
4
5
6
7
8
9
是的,n8n 流程表达式(Expressions)可以读取系统环境变量。您可以在表达式或代码中通过内置变量访问环境变量。例如,可以使用如下方式读取环境变量:

- 用表达式来说:`{{$env.YOUR_ENV_VARIABLE}}`

- 在代码节点中:`$env.YOUR_ENV_VARIABLE`


需要注意的是,管理员可以通过设置`N8N_BLOCK_ENV_ACCESS_IN_NODE`环境变量来在表达式和代码节点中访问环境变量。如果该变量设置为`true`,则无法在表达式和代码节点中访问[环境变量安全环境变量](https://docs.n8n.io/hosting/configuration/environment-variables/security/#security-environment-variables)。

2.为什么我在一个节点设置了export环境变量,在下一个节点读取不到呢

1
2
3
4
5
6
7
在n8n中,节点之间并不会共享你在某个节点中通过export或set命令设置的环境变量。n8n的环境变量是在启动n8n服务时由网络传递给整个n8n进程的,而不是在单个节点执行时动态设置和传递的。

也就是说:

- 你需要在启动 n8n 服务(比如 docker run、docker-compose、或者直接在 shell 启动 n8n 前)就设置好环境变量,这样 n8n 的所有节点才能读取到这些变量。

- 在某个节点(比如执行命令或代码节点)里用导出设置的环境变量,只在该节点的子进程或当前脚本中有效,不会影响n8n进程本身,也不会被其他节点读取到。

3.n8n $var定义的环境变量怎么修改

1
n8n 中通过 $vars 定义的环境变量(即自定义变量)是可以修改**的**,不能在工作流或代码节点中直接修改。你只能通过 n8n 的 UI(界面)进行添加、编辑或删除这些变量,不能在流执行过程中用代码或表达式动态更改其值。

4.n8n 怎么引用变量

1
选择表达式,使用{{ 变量 }}