介绍
n8n是一款开源的工作流自动化工具,类似于IFTTT。它的优点是开源、可以自托管、下载安装方便、易于使用,可以互联上百种服务 。
n8n基于节点能够将任何工具连接在一起,轻松部署不同类型的任务。它可以做很多事情,比如:从数据库中获取数据后下载为excel然后通过邮件发送给其他人。
部署
因为安装比较麻烦,这里只演示使用docker
快速使用 docker run
docker run -it --rm --name n8n -p 5678:5678 -v ~/.n8n:/home/node/.n8n docker.n8n.io/n8nio/n8n
因为使用docker run 很容易丢失使用时的数据,推荐使用docker compose
这是官方文档,里面有携带MySQL pgsql等的docker compose
码头工人 |n8n 文档
但是一般我们本地都有安装这些东西,就没必要再在docker里安装一个了
这是只有n8n的docker compose,
version: '3.8'
volumes:
db_storage:
n8n_storage:
services:
n8n:
image: docker.n8n.io/n8nio/n8n
restart: always
ports:
- 5678:5678
volumes:
- n8n_storage:/home/node/.n8n
command: /bin/sh -c "n8n start --tunnel"
复制到本地的docker-compose.yml然后docker-compose up就可以了
http://localhost:5678/
打开我们的n8n页面,第一次登录注册账号密码
注册完后在此页面点击add workflow就可以来添加我们的工作流了
n8n使用1
常用工具
点击右上角的+号
选择需要的工具
连接数据库
双击打开mysql,点击create new credentlal
填写自己的mysql信息,进行数据库连接
在operation这选择你要进行的操作,增、删、改、查
发送网络请求
使用HTTP Request这个组件可以发送网络请求,这里演示使用刚刚MySQL查询出来的数据进行发送请求
设置HTTP请求参数,在数据库查询的数据id作为路径参数,body就是查出来的所有数据
自己写一个api来接一下这些数据
把body打印到控制台,可见请求是成功的
回到n8n这边,在OUTPUT看见,api程序返回的请求成功也接受到了
if
IF组件使用方法其实就相当于后端编写的if函数
如下,判断data中的数据是不是等于 “请求成功!”,然后将组件连接上一个http请求
因为前面5个请求都成功了,所以五条数据都走true通道
分批拆分:splitlnBatches
分批拆分,相当于一个for循环,可以设置把数据拆分成几份
添加一个splitlnBatches组件,设置batch size为1
改造一下刚刚的request,连上wait,再使用splitlnBatches将他们套起来,wait是一个等候,相当于后端中的睡眠,这样就可以实现将数据一条一条发送,每条之间设置一个等候时间,如3秒发送一条,缓解服务器的压力
数据筛选set
从数据中挑选出需要的数据,如,我们直接连接数据库,但是后续操作不需要这么多数据,只需要id和性别,就可以像我下面一样操作
后续
n8n中还有很多非常实用的功能,这里就不一 一介绍了,有时间的话后续会补充一下其他功能